Próbuję przekonwertować obiekt strefy czasowej datetime
na UTC, a następnie z powrotem na jego oryginalną strefę czasową. Mam następujący fragmentKonwersja datetime i strefy czasowej z pytzem - zachowanie dmuchanie umysłem
t = datetime(
2013, 11, 22, hour=11, minute=0,
tzinfo=pytz.timezone('Europe/Warsaw')
)
teraz w ipython:
In [18]: t
Out[18]: datetime.datetime(
2013, 11, 22, 11, 0, tzinfo=<DstTzInfo 'Europe/Warsaw' WMT+1:24:00 STD>
)
i teraz spróbujmy zrobić konwersję do UTC iz powrotem. Spodziewam się, aby mieć taką samą reprezentację jako:
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>
)
Jednak widzimy, że Out[18]
i Out[19]
różnią. Co się dzieje?
sklepy Django datetimes naiwny bazy mądry. Jeśli zajmiesz się tą sprawą, zajrzyj tutaj, aby przekonwertować daty na strefę czasową, której potrzebujesz: https://docs.djangoproject.com/en/dev/topics/i18n/timezones/#usage – Jingo
czy Django przechowuje naiwne datetimes z nie jest kontrolowane przez ustawienie "USE_TZ". Jeśli jest to "True", wówczas Django traktuje datetime w formularzach itp. Jako będące w [bieżącej strefie czasowej] (https://docs.djangoproject.com/en/dev/topics/i18n/timezones/#selecting-the-current-time -zone) i przechowuje je w db zamienionym na UTC. – Anentropic