Я пытаюсь преобразовать временную зону datetime
объект в UTC, а затем обратно в его часовой пояс. У меня есть следующий фрагментпреобразование даты и времени в pytz - поведение дуновения разума
t = datetime(
2013, 11, 22, hour=11, minute=0,
tzinfo=pytz.timezone('Europe/Warsaw')
)
сейчас в IPython:
In [18]: t
Out[18]: datetime.datetime(
2013, 11, 22, 11, 0, tzinfo=<DstTzInfo 'Europe/Warsaw' WMT+1:24:00 STD>
)
и теперь давайте попробуем сделать преобразование в UTC и обратно. Я бы ожидать, чтобы иметь такое же представление, как:
In [19]: t.astimezone(pytz.utc).astimezone(pytz.timezone('Europe/Warsaw'))
Out[19]: datetime.datetime(
2013, 11, 22, 10, 36, tzinfo=<DstTzInfo 'Europe/Warsaw' CET+1:00:00 STD>
)
Тем не менее, мы видим, что Out[18]
и Out[19]
отличаются. Что происходит?
Django хранит DateTimes наивных баз данных мудры. Если вы справитесь с этим делом, посмотрите здесь, чтобы преобразовать даты в необходимый часовой пояс: https://docs.djangoproject.com/en/dev/topics/i18n/timezones/#usage – Jingo
ли Django хранит наивные datetime of not is контролируется установкой 'USE_TZ'. Если это «True», то Django рассматривает даты в формах и т. Д. Как находящиеся в [текущем часовом поясе] (https://docs.djangoproject.com/en/dev/topics/i18n/timezones/#selecting- the-current-time -zone) и сохраняет их в db, преобразованном в UTC. – Anentropic