djangoでのタイムゾーン設定TIME_ZONE,USE_TZ
DjangoがTime Zone機能をオンにすると、すべての記憶および内部処理、さらには直接
だからバックグラウンドで時間を処理するときは、UTCを完全に使って、ローカル時間の存在を考えないことをお勧めします.時間を表示するときも、手動変換は避け、できるだけDjangoテンプレートシステムで代行します.
使用可能
データベースに保存されるのはUTC時間であることを保証します.
関数間で時間パラメータを渡す場合、時間がUTC時間に変換されていることを確認します.
たとえば、通常、現在の時間を取得するには、次のようにします.
使用可能
アプリケーションがユーザーが自分のタイムゾーンを設定することをサポートしない限り、テンプレートのタイムゾーンの問題に関心を持つ必要はありません.テンプレートは展示時間に使用されます
print
表示を含めてすべてUTCである.UTCローカル時間の変換は、テンプレートからフォーム入力/レンダリング出力を行う場合にのみ実行されます.だからバックグラウンドで時間を処理するときは、UTCを完全に使って、ローカル時間の存在を考えないことをお勧めします.時間を表示するときも、手動変換は避け、できるだけDjangoテンプレートシステムで代行します.
使用可能
USE_TZ = True
その後、処理時間には、2つの「黄金の法則」があります.データベースに保存されるのはUTC時間であることを保証します.
関数間で時間パラメータを渡す場合、時間がUTC時間に変換されていることを確認します.
たとえば、通常、現在の時間を取得するには、次のようにします.
import datetime
now = datetime.datetime.now()
使用可能
USE_TZ = True
次のように書く必要があります.import datetime
from django.utils.timezone import utc
utcnow = datetime.datetime.utcnow().replace(tzinfo=utc)
かたわくアプリケーションがユーザーが自分のタイムゾーンを設定することをサポートしない限り、テンプレートのタイムゾーンの問題に関心を持つ必要はありません.テンプレートは展示時間に使用されます
settings.TIME_ZONE
の設定はUTC時間を自動的に settings.TIME_ZONE
を選択して設定できます.TIME_ZONE = 'Asia/Shanghai'