У меня проблема с созданием дат в python, поскольку в некоторых сценариях даты, которые я создаю, не учитывают переход на летнее время.
Например, если я иду к своей оболочке и запускаю
>>> adjust_datetime_to_timezone(value=datetime.datetime.now(), from_tz=timezone('UTC'), to_tz=timezone('US/Pacific'))
datetime.datetime(2011, 7, 7, 12, 41, 16, 337918, tzinfo=<DstTzInfo 'US/Pacific' PDT-1 day, 17:00:00 DST>)
Я получаю правильное время.
Я хочу создать дату, которая является началом текущей даты, поэтому я запускаю:
>>> datetime.datetime(year=2011, month=7, day=7, tzinfo=timezone('US/Pacific'))
datetime.datetime(2011, 7, 7, 0, 0, tzinfo=<DstTzInfo 'US/Pacific' PST-1 day, 16:00:00 STD>)
Обратите внимание, что это дата PST, потому что когда я конвертирую ее в UTC:
>>> adjust_datetime_to_timezone(datetime.datetime(year=2011, month=7, day=7, tzinfo=timezone('US/Pacific')), from_tz=timezone('US/Pacific'), to_tz=timezone('UTC')) datetime.datetime(2011, 7, 7, 8, 0, tzinfo=<UTC>)
Обратите внимание, что 07/07/2011 08:00 AM UTC, что на самом деле 01:00 AM PDT.
Кто-нибудь знает, почему python будет давать мне PST-даты для конструктора datetime.datetime, а не для Adjust_datetime_to_timezone?