2016-07-31 91 views
2

我想在Python中解析日期時間字符串。輸入值的形式爲:Python解析日期字符串至日期

 "February 19, 1989" 

我一直在努力,到目前爲止

 datetime.datetime.strptime("February 19, 1989", "%B %d, %y") 

,但我總是得到錯誤。解析這樣一個日期的正確方法是什麼?謝謝!

回答

3

下工作(改變小案例y爲大寫Y):

datetime.datetime.strptime("February 19, 1989", "%B %d, %Y") 

的原因是,%y9998和這樣的,而%Y是整整一年。您可以閱讀關於此here的完整文檔。

1

除了大衛的answer,如果你有一個有多種格式的字符串(比方說,有些有兩個數字的年份和其他人有四個)的列表,你可以利用dateutil包,以幫助解析這些字符串到日期時間自動對象。

from dateutil import parser 

dates = ["February 19, 1989", "February 19, 89", "February 19, 01"] 
for d in dates: 
    print(parser.parse(d)) 

打印3個日期時間對象:

datetime.datetime(1989, 2, 19, 0, 0) 
datetime.datetime(1989, 2, 19, 0, 0) 
datetime.datetime(2001, 2, 19, 0, 0) 

這樣做的缺點,相對於前面提到的答案是,它需要一個額外的軟件包。好處在於,它不需要知道格式字符串就可以確定日期。