2016-07-31 92 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) 

这样做的缺点,相对于前面提到的答案是,它需要一个额外的软件包。好处在于,它不需要知道格式字符串就可以确定日期。