Python 如何将此日期字符串转换为datetime日期对象?

Python 如何将此日期字符串转换为datetime日期对象?,python,datetime,python-2.7,Python,Datetime,Python 2.7,当我试图将这个日期字符串转换为datetime对象时,我不明白为什么它会抛出错误 我的日期字符串位于:u'2013-11-05T20:24:51+0000' 基于Python的外观格式:'%Y-%m-%dT%H:%m:%s%Z' 但出于某种原因,当我跑步时: test = datetime.strptime('2013-11-05T20:24:51+0000', '%Y-%m-%dT%H:%M:%S%Z') 我明白了 %Z是错误的指令 试试这个 datetime.strptime('2013-

当我试图将这个日期字符串转换为datetime对象时,我不明白为什么它会抛出错误

我的日期字符串位于:
u'2013-11-05T20:24:51+0000'

基于Python的外观格式:
'%Y-%m-%dT%H:%m:%s%Z'

但出于某种原因,当我跑步时:

test = datetime.strptime('2013-11-05T20:24:51+0000', '%Y-%m-%dT%H:%M:%S%Z')
我明白了


%Z
是错误的指令

试试这个

datetime.strptime('2013-11-05T20:24:51+0000', '%Y-%m-%dT%H:%M:%S+%f')

演示:

>>从datetime导入datetime
>>>datetime.strTime('2013-11-05T20:24:51+0000','%Y-%m-%dT%H:%m:%S%Z')
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/usr/lib/python2.7/_strtime.py”,第325行,在_strtime中
(数据字符串,格式))
ValueError:时间数据“2013-11-05T20:24:51+0000”与格式“%Y-%m-%dT%H:%m:%S%Z”不匹配
>>>datetime.strtime('2013-11-05T20:24:51+0000','%Y-%m-%dT%H:%m:%S+%f')
datetime.datetime(2013,11,5,20,24,51)

很好地捕捉到
%Z
是错误的。虽然它不是
%f
--这是一个完全不同的值,但实际上它应该是
%z
@JeffWidman True,但是
%z
给出了:
ValueError:
z'是一个错误的指令,格式为“%z”
Python的
datetime
只支持
%z
表示日期,而不支持解析日期。不久前我自己就发现了这一点。对于>python3.2
%f
来说,它似乎是固定的,它是毫秒,而不是时区偏移量。如果你经常这样做,并且像我一样不喜欢编写strtime表达式,那么试试看——肯定是重复的。当我最初发布这个问题时,我没有意识到它是ISO8601格式的,所以当我搜索时,这个问题没有出现。请随意关闭/合并或在此处执行任何适当的操作。
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)