djangoでのタイムゾーン設定TIME_ZONE,USE_TZ


DjangoがTime Zone機能をオンにすると、すべての記憶および内部処理、さらには直接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'