Вопрос:

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

python datetime

30869 просмотра

1 ответ

348 Репутация автора

Учитывая эту строку: "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". Я бы предпочел преобразовать именно это без изменения (или нарезки) в любом случае.

Автор: Gussi Источник Размещён: 09.04.2010 04:47

Ответы (1)


40 плюса

3189 Репутация автора

Решение

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

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

Автор: clahey Размещён: 09.04.2010 04:57
Вопросы из категории :
32x32