我无法弄清楚为什么这个日期字符串在我尝试将其转换为日期时间对象时会抛出错误。
我的日期字符串位于standard ISO-8601 format:u'2013-11-05T20:24:51+0000'
基于Python strptime documentation的表观格式:'%Y-%m-%dT%H:%M:%S%Z'
但出于某种原因,当我跑步时:
test = datetime.strptime('2013-11-05T20:24:51+0000', '%Y-%m-%dT%H:%M:%S%Z')
我得到了
ValueError: time data '2013-11-05T20:24:51+0000' does not match format '%Y-%m-%dT%H:%M:%S%Z'`
答案 0 :(得分:2)
%Z
是错误的指令。
试试这个
datetime.strptime('2013-11-05T20:24:51+0000', '%Y-%m-%dT%H:%M:%S+%f')
演示:
>>> from datetime import datetime
>>> datetime.strptime('2013-11-05T20:24:51+0000', '%Y-%m-%dT%H:%M:%S%Z')
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 '2013-11-05T20:24:51+0000' does not match format '%Y-%m-%dT%H:%M:%S%Z'
>>> datetime.strptime('2013-11-05T20:24:51+0000', '%Y-%m-%dT%H:%M:%S+%f')
datetime.datetime(2013, 11, 5, 20, 24, 51)