python中關於datetime函數,你可能犯過的錯

python中關於datetime函數,你可能犯過的錯

python 錯誤提示很友好,他總會提醒你在哪一行,有是因爲什麼犯的錯

  1. 注意大小寫
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

  1. 注意輸入格式
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 的錯誤
這下就知道了 格式錯誤 首先反省自己的輸入。

這樣就愉快的解決了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章