我在日志和显示中看到了一些奇怪的行为。我想不通。
在 settings.py 中:
TIME_ZONE = 'America/Chicago'
USE_TZ = True
在views.py中:
local_timezone = pytz.timezone("America/Chicago")
blast = Blast.objects.get(id=blast_id)
blast_time = local_timezone.normalize(blast.date.astimezone(local_timezone))
print local_timezone
print blast.date
print blast_time
输出:
>>America/Chicago
>>2013-09-27 16:00:00+00:00
>>2013-09-27 11:00:00-05:00
一切似乎都很好。
然后在模板中:
{{ blast.date|date:'D, d M h:i A e' }} {{ blast.date.tzinfo }}
({{ blast_time }} {{ blast_time.tzinfo }})
呈现为:
FRI, 27 SEP 11:00 AM CDT UTC
(SEPT. 27, 2013, 11 A.M. AMERICA/CHICAGO)
请注意,由于我无法理解的原因,第一行声称有两个不同的时区。
将 settings.py 中的默认时区更改为“America/New_York”(但将视图保留为 America/Chicago)会导致:
>>2013-09-27 16:00:00+00:00
>>2013-09-27 11:00:00-05:00
并呈现为:
FRI, 27 SEP 12:00 PM EDT UTC
(SEPT. 27, 2013, NOON AMERICA/CHICAGO)
为什么渲染的|date:'e'
和具有不同的值.tzinfo
?更进一步,为什么blast_time
转换为不同时区的 显示相同的小时?