2014-09-24 32 views
1

我想下面的字符串解析成一個有效日期時間格式:爲什麼我的Python代碼不接受%z作爲DateTime指令?

Wed, 10 Sep 2014 11:20:58 +0000 

爲此,我用這個Python代碼:

dtObject = datetime.strptime(e[attr], '%a, %d %b %Y %H:%M:%S %z') 

不幸的是我得到一個錯誤說:

File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/_strptime.py", line 317, in _str 
ptime 
    (bad_directive, format)) 
ValueError: 'z' is a bad directive in format '%a, %d %b %Y %H:%M:%S %z' 

根據strptime() docs,%z應該是完全正確的UTC offset in the form +HHMM or -HHMM

有人知道我在做什麼錯嗎?所有的技巧,歡迎

+0

的Z必須資本 – gkusner 2014-09-24 12:49:04

回答

1

看起來好像strptime並不總是支持%z(見this答案)
相反的strptime,你可以使用dateutil.parser和正常工作:

>>> import dateutil.parser 
>>> s='Wed, 10 Sep 2014 11:20:58 +0000' #UTC 
>>> dateutil.parser.parse(s) 
datetime.datetime(2014, 9, 10, 11, 20, 58, tzinfo=tzutc()) 


>>> s='Wed, 10 Sep 2014 11:20:58 +0100' #ANOTHER TZ 
>>> dateutil.parser.parse(s) 
datetime.datetime(2014, 9, 10, 11, 20, 58, tzinfo=tzoffset(None, 3600)) 
相關問題