Подтвердить что ты не робот

Преобразование строки с UTC-смещением в объект datetime

С учетом этой строки: "Fri, 09 Apr 2010 14:10:50 +0000" как преобразовать ее в объект datetime?

После некоторого чтения я чувствую, что это должно работать, но это не...

>>> from datetime import datetime
>>>
>>> str = 'Fri, 09 Apr 2010 14:10:50 +0000'
>>> fmt = '%a, %d %b %Y %H:%M:%S %z'
>>> datetime.strptime(str, fmt)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib64/python2.6/_strptime.py", line 317, in _strptime
    (bad_directive, format))
ValueError: 'z' is a bad directive in format '%a, %d %b %Y %H:%M:%S %z'

Следует отметить, что это работает без проблем:

>>> from datetime import datetime
>>>
>>> str = 'Fri, 09 Apr 2010 14:10:50'
>>> fmt = '%a, %d %b %Y %H:%M:%S'
>>> datetime.strptime(str, fmt)
datetime.datetime(2010, 4, 9, 14, 10, 50)

Но я застрял с "Fri, 09 Apr 2010 14:10:50 +0000". Я бы предпочел преобразовать именно это, не меняя (или нарезая) его каким-либо образом.

4b9b3361

Ответ 1

Похоже, что strptime не всегда поддерживает %z. Python просто вызывает функцию C, а strptime не поддерживает %z на вашей платформе.

Примечание: из Python 3.2 он всегда будет работать.