我正在尝试将时区感知的datetime
对象转换为UTC,然后再转回其原始时区。我有以下代码片段:
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]
不同。发生了什么?
USE_TZ
设置。如果为True
,则Django将表单中的日期时间视为处于当前时区,并将其转换为UTC存储在数据库中。 - Anentropic