settings.py で、タイムゾーン設定 USE_TZ が True になっている場合、DjangoはデフォルトでUTCを使用します。このため、表示時に適切なタイムゾーンに変換する必要があります。
Djangoのタイムゾーン設定を確認する:
# settings.py
USE_TZ = True # タイムゾーン対応を有効にする
TIME_ZONE = 'Asia/Tokyo' # サーバーのデフォルトタイムゾーンを設定する
ビューでのタイムゾーン変換:
Djangoのビューで、datetime.date.today()を使う場合は、タイムゾーンを考慮して今日の日付を取得します。
from django.utils import timezone
from datetime import date
def get_today_date():
# 現在のタイムゾーンを取得
current_tz = timezone.get_current_timezone()
# 現在の日付と時刻を取得し、タイムゾーンを設定
now = timezone.now().astimezone(current_tz)
# 現在の日付を返す
return now.date()
テンプレートでの表示:
Djangoのテンプレートで日付を表示する際には、タイムゾーンを考慮して表示します。
<!-- テンプレートファイル (例: my_template.html) -->
{% load tz %}
{% get_current_timezone as TIME_ZONE %}
{% localtime on %}
<p>今日の日付: {{ today }}</p>
{% localtime off %}
0 件のコメント:
コメントを投稿