Преобразование часового пояса Python3.5 - PullRequest
0 голосов
/ 20 января 2019

Я перепробовал несколько постов / предложений по конвертации объектов часового пояса и потерпел неудачу.Я надеюсь, что кто-то может указать мне на простой способ сделать это.

У меня есть строка / datetime 2017-05-11T16:24:56-04:00 Я могу разобрать ее несколькими способами, dateutil и т. Д., В объект datetime.при печати я получаю

datetime.datetime(2017, 5, 11, 16, 24, 56, tzinfo=tzoffset(None, -14400))

, поэтому он получает значение tzoffset.

При попытке любого преобразования не обновляется фактическая часть времени, а только информация о зоне.

Как мне преобразовать эту строку в свой местный часовой пояс (EST или смещение -5 часов).

edit: попытка astimezone () дает мне следующее:

dt.astimezone()                                                                   
Out[18]: datetime.datetime(2017, 5, 11, 16, 24, 56, 
tzinfo=datetime.timezone(datetime.timedelta(-1, 72000), 'EDT'))

Спасибо!

1 Ответ

0 голосов
/ 20 января 2019

Когда вы конвертируете его, используя tzinfo, вы изменяете только суффикс выходной строки (например, с помощью tzutc ()): 2017-05-11 16:24:56+00:00

Если вы хотите напечатать его в своем часовом поясе, сначала создайте объект datetime, используя фактический часовой пояс, который он представляет:

dt = datetime(2017, 5, 11, 16, 24, 56,
              tzinfo=tzoffset(None, -18000))
# 2017-05-11 16:24:56-05:00

А затем преобразовать его в нужный часовой пояс, используя:

mydt = dt.astimezone(tzutc())
# 2017-05-11 21:24:56+00:00
...