我正在尝试将日期时间字符串解析为 Python 中的日期。输入值的形式为:
"February 19, 1989"
到目前为止我一直在尝试
datetime.datetime.strptime("February 19, 1989", "%B %d, %y")
但我总是出错。解析这样一个日期的正确方法是什么?谢谢!
我正在尝试将日期时间字符串解析为 Python 中的日期。输入值的形式为:
"February 19, 1989"
到目前为止我一直在尝试
datetime.datetime.strptime("February 19, 1989", "%B %d, %y")
但我总是出错。解析这样一个日期的正确方法是什么?谢谢!
以下作品(将小写更改y
为大写Y
):
datetime.datetime.strptime("February 19, 1989", "%B %d, %Y")
原因是%y
,99
等等98
, while%Y
是全年。你可以在这里阅读完整的文档。
除了 David 的回答之外,如果您有一个具有多种格式的字符串列表(例如,有些有两位数的年份,而另一些有四个),您可以利用该dateutil
包帮助将这些字符串自动解析为 datetime 对象。
from dateutil import parser
dates = ["February 19, 1989", "February 19, 89", "February 19, 01"]
for d in dates:
print(parser.parse(d))
打印三个日期时间对象:
datetime.datetime(1989, 2, 19, 0, 0)
datetime.datetime(1989, 2, 19, 0, 0)
datetime.datetime(2001, 2, 19, 0, 0)
与前面提到的答案相比,这样做的缺点是它需要一个额外的包。好处是它可以很好地确定您的日期,而无需知道格式字符串。