ログと表示で奇妙な動作が見られます。私はそれを理解することはできません。
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)
最初の行は 2 つの異なるタイム ゾーンを要求していることに注意してください。理由はわかりません。
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'
render のと の値が異なるのはなぜ.tzinfo
ですか? さらに、blast_time
別のタイムゾーンに変換された が同じ時間を示しているのはなぜですか?