我試圖從串列中獲取兩個日期(字串)“開始日期”和“結束日期”之間的年數差異,但我注意到日期串列的格式不正確。嘗試轉換為相同格式后,輸出不斷將年份更改為 2021,這是錯誤的。這是我的代碼和輸出
start_date= ['18-Aug', '12-Aug', 'Nov-19', 'Oct-17', '19-Apr', 'Mar-15', '12-Jul', 'Jul-15', '13-May', '13-Oct']
for i in range(len(start_date)):
print(dateutil.parser.parse(start_date[i]).strftime("%y-%b"))
輸出:
21-Aug
21-Aug
21-Nov
21-Oct
21-Apr
21-Mar
21-Jul
21-Jul
21-May
21-Oct
預期輸出應該是:
18-08
12-08
19-11
17-10
19-04
15-03
12-07
15-07
13-05
13-10
uj5u.com熱心網友回復:
您%y-%b對輸出使用了錯誤的格式。此外,您不需要使用dateutil庫。您可以使用此答案中datetime所示的標準庫來實作。
from datetime import datetime
def try_parsing_date(text):
for fmt in ('%b-%d', '%d-%b'):
try:
return datetime.strptime(text, fmt)
except ValueError:
pass
raise ValueError('no valid date format found')
start_date = ['18-Aug', '12-Aug', 'Nov-19', 'Oct-17', '19-Apr', 'Mar-15', '12-Jul', 'Jul-15', '13-May', '13-Oct']
for text in start_date:
print(try_parsing_date(text).strftime("%d-%m"))
輸出:
18-08
12-08
19-11
17-10
19-04
15-03
12-07
15-07
13-05
13-10
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/342505.html
