3

ログと表示で奇妙な動作が見られます。私はそれを理解することはできません。

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別のタイムゾーンに変換された が同じ時間を示しているのはなぜですか?

4

0 に答える 0