У меня возникли какие-то странные проблемы с функцией .localize() pytz. Иногда это не будет вносить изменения в локализованной DateTime:pytz localize vs datetime replace
.localize поведение:
>>> tz
<DstTzInfo 'Africa/Abidjan' LMT-1 day, 23:44:00 STD>
>>> d
datetime.datetime(2009, 9, 2, 14, 45, 42, 91421)
>>> tz.localize(d)
datetime.datetime(2009, 9, 2, 14, 45, 42, 91421,
tzinfo=<DstTzInfo 'Africa/Abidjan' GMT0:00:00 STD>)
>>> tz.normalize(tz.localize(d))
datetime.datetime(2009, 9, 2, 14, 45, 42, 91421,
tzinfo=<DstTzInfo 'Africa/Abidjan' GMT0:00:00 STD>)
Как вы можете видеть, время не было изменено в результате локализовать/нормализовать операции. Однако, если используется .Надеть:
>>> d.replace(tzinfo=tz)
datetime.datetime(2009, 9, 2, 14, 45, 42, 91421,
tzinfo=<DstTzInfo 'Africa/Abidjan' LMT-1 day, 23:44:00 STD>)
>>> tz.normalize(d.replace(tzinfo=tz))
datetime.datetime(2009, 9, 2, 15, 1, 42, 91421,
tzinfo=<DstTzInfo 'Africa/Abidjan' GMT0:00:00 STD>)
Который, кажется, делает корректив в DateTime.
Вопрос - это правильно и почему другие ошибаются?
относящийся: [Datetime Timezone conversion using pytz] (http://stackoverflow.com/q/27531718/4279) – jfs