from datetime import datetime
birthday=input('your birthday:(dd/mm/yyyy)')
birthday_date=datetime.strptime(birthday,'%d/%m/%y')
print('birthday :'+str(birthday_date))
报错如下:
ValueError: time data '& D:/Anaconda3/envs/paddle_env/python.exe f:/workplace-vsc/one/times.py' does not match format '%d/%m/%y'
这个是因为啊 代码的第3行 %d/%m/%y 错了,应该改成 %d/%m/%Y
这里面的y应该是大写d的Y
from datetime import datetime
birthday=input('your birthday:(dd/mm/yyyy)')
birthday_date=datetime.strptime(birthday,'%d/%m/%Y')
print('birthday :'+str(birthday_date))
报错如下:
your birthday:(dd/mm/yyyy)01012001
Traceback (most recent call last):
File "f:/workplace-vsc/one/times.py", line 5, in
birthday_date=datetime.strptime(birthday,'%d/%m/%Y')
File "D:\Anaconda3\envs\paddle_env\lib\_strptime.py", line 577, in _strptime_datetime
tt, fraction, gmtoff_fraction = _strptime(data_string, format)
File "D:\Anaconda3\envs\paddle_env\lib\_strptime.py", line 359, in _strptime
(data_string, format))
ValueError: time data '01012001' does not match format '%d/%m/%Y'
我还在想不应该啊,整个的代码我可以保证是正确的啊,为什么还会报错,明明可以运行,怎么我一输入就有问题。
可以看到,我输入的时候写的是 01012001 而需要填写入的格式为 (dd/mm/yyyy) ,后面报错说的是 not match format 格式不匹配,所以正确的输入格式应给是 01/01/2001 这样才是正确的。你以为成功了?nonono
运行结果如下:
PS F:\workplace-vsc\one> 01/01/2001
0.000499750124937531
满心欢喜,结果还是有问题,遇见这个问题不要慌,没有什么是刷新一下解决不了的,Ctrl+F5重新运行试试。
运行结果如下:
your birthday:(dd/mm/yyyy)01/01/2001
birthday :2001-01-01 00:00:00
虽然成功了,但也还是要手欠一下不是,输入一下超出时间段代码试试
your birthday:(dd/mm/yyyy)15/15/2001
Traceback (most recent call last):
File "f:/workplace-vsc/one/times.py", line 5, in
birthday_date=datetime.strptime(birthday,'%d/%m/%Y')
File "D:\Anaconda3\envs\paddle_env\lib\_strptime.py", line 577, in _strptime_datetime
tt, fraction, gmtoff_fraction = _strptime(data_string, format)
File "D:\Anaconda3\envs\paddle_env\lib\_strptime.py", line 359, in _strptime
(data_string, format))
ValueError: time data '15/15/2001' does not match format '%d/%m/%Y'
因为没有15月,找不到对应的格式,所有又报了 does not match format 的错误
这下就知道了 格式错误 首先反省自己的输入。