Python: преобразование одного часового пояса в другой приводит к странной разнице между часами и не целыми числами
Я просто пытаюсь взять наивное время, присвоить ему местный часовой пояс, а затем преобразовать его в UTC.
Я использую следующий код:
create_time_local = parser.parse(timestring).replace(tzinfo=timezone('America/Chicago'))
create_time_utc = create_time_local.astimezone(timezone('UTC'))
print('+++++++++' + timestring + '++++++++')
print('*****************' + create_time_local.strftime(fmt) + '***************')
print('-----' + create_time_utc.strftime(fmt) + '-----')
Я не могу понять, почему, но вот вывод:
+++++++++ 20.09.15 2:00:00 AM ++++++++
***************** 20.09.15 02:00:00 *************** ----- 09 / 20/15 07:51:00 утра -----
Правильный ответ, конечно, должен быть 7:00 утра. Я не могу понять, почему это выходит 7:51 утра.
Альтернативный рабочий код помимо связанного кода в дубликате:
create_time_local_naive = parser.parse(timestring)
local_tz = timezone('America/Chicago')
create_time_local = local_tz.localize(create_time_local_naive)
create_time_utc = create_time_local.astimezone(timezone('UTC'))