Как заставить python datetime.strptime учитывать пройденный часовой пояс?

Попытка преобразовать строку в datetime и сохранить ее в БД. Строка указывает часовой пояс, но strptime не принимает параметр %z.

datetime.strptime("Tue Feb 14 2017 15:30:01 GMT-0500", "%a %b %d %Y %H:%M:%S GMT%z")

ValueError: «z» — неверная директива в формате «%a %b %d %Y %H:%M:%S GMT%z»


person Srini K    schedule 16.02.2017    source источник
comment
Ответ выглядит здесь: stackoverflow.com/questions/26165659/   -  person Marviel    schedule 16.02.2017


Ответы (1)


%z поддерживается, начиная с Python 3.2.

>>> from datetime import datetime
>>> datetime.strptime("Tue Feb 14 2017 15:30:01 GMT-0500", "%a %b %d %Y %H:%M:%S GMT%z")
datetime.datetime(2017, 2, 14, 15, 30, 1, tzinfo=datetime.timezone(datetime.timedelta(-1, 68400)))

Или используйте dateutil.parser,

>>> from dateutil import parser
>>> parser.parse('Tue Feb 14 2017 15:30:01 GMT-0500')
datetime.datetime(2017, 2, 14, 15, 30, 1, tzinfo=tzoffset(None, 18000))

person SparkAndShine    schedule 16.02.2017