如何将“Thu Jun 5 10:59:10 CDT 2014”转换为Python datetime对象?
如何把“Thu Jun 5 10:59:10 CDT 2014”转换成Python的日期时间对象?
我好像遇到问题了,因为里面有CDT这个东西。用%Z来处理它时总是出错 :(
2 个回答
0
dateutil
可以轻松解析大多数日期格式。
$ easy_install dateutil
>>> from dateutil import parser
>>> parser.parse("Thu Jun 5 10:59:10 CDT 2014")
datetime.datetime(2014, 6, 5, 10, 59, 10)
(我觉得它对时区的处理可能不太准确……不过它确实能解析出来……)
3
在这里,你不能用普通的方法来创建datetime
对象。正如文档中提到的,strptime
只能处理(空), UTC, EST, CST
这些情况:
>>> datetime.datetime.strptime("Thu Jun 05 10:59:10 UTC 2014", "%a %b %d %H:%M:%S %Z %Y")
datetime.datetime(2014, 6, 5, 10, 59, 10)
>>> datetime.datetime.strptime("Thu Jun 05 10:59:10 CDT 2014", "%a %b %d %H:%M:%S %Z %Y")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/_strptime.py", line 325, in _strptime
(data_string, format))
ValueError: time data 'Thu Jun 05 10:59:10 CDT 2014' does not match format '%a %b %d %H:%M:%S %Z %Y'
你需要看看python-dateutil
,它可以把对象解析成一个naive的日期时间对象(也就是说,它不考虑时区...):
>>> from dateutil import parser
>>> parser.parse("Thu Jun 5 10:59:10 CDT 2014")
datetime.datetime(2014, 6, 5, 10, 59, 10)