python中關於datetime函數,你可能犯過的錯
python 錯誤提示很友好,他總會提醒你在哪一行,有是因爲什麼犯的錯
- 注意大小寫
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 <module>
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 <module>
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 的錯誤
這下就知道了 格式錯誤 首先反省自己的輸入。