Django が自動的に変換してくれるので、保存する前に UTC に変換する必要はありません。TIMEZONE
取得すると、設定で定義されたタイムゾーンとして取得されます。
activate()
現在のタイムゾーンを表示するには、 を使用してそれをオーバーライドできますdjango.utils.timezone.get_current_timezone()
。
これは、データベースから取得した時刻が、オブジェクトを最初に保存するために使用した datetime オブジェクトのタイムゾーンと異なる場合があることを意味します。しかし、それはまだ同じ瞬間です。
各ユーザーのタイムゾーンがある場合は、これをユーザーのプロファイルと共に保存しactivate()
、DateTimeField
. 取得されたオブジェクトは、適切なタイムゾーンになります。
override()
または、コンテキスト マネージャーを使用することもできます。
datetime
オブジェクトを常にサーバーのタイムゾーンではなくユーザーのタイムゾーンにしたい場合は、 onを呼び出すカスタム ミドルウェアを記述します。Django はユーザーのタイムゾーンが何であるかを知る方法がなく、デフォルトでは User モデルに保存しないため、タイムゾーンを自分で保存/取得する必要があります。activate()
request.user