MYSQLに保存されるときはUTCで保存されて、取り出したときににDjangoで日本時間に変換されるという認識でいい?
はい、基本的にはそのような仕組みです。
Djangoでは、デフォルトでUTC時間で時刻が保存されます。つまり、モデルのDateTimeFieldに保存された時刻は、データベースにUTC時間として保存されます。
しかし、DjangoはTIME_ZONE設定に基づいて、データベースから取得した時刻をローカルのタイムゾーンに変換します。したがって、DateTimeFieldから取得した時刻は、Djangoが設定されたタイムゾーンに従って変換されます。
例えば、settings.pyでTIME_ZONE = 'Asia/Tokyo'を設定している場合、データベースから取得した時刻は自動的に日本時間に変換されます。そのため、Djangoアプリケーション内で日本時間を扱うことができます。
ただし、この挙動はデフォルトであり、必要に応じて変更することも可能です。 Djangoの設定やモデルのフィールド設定を変更することで、別の動作を実現することもできます。

ディスカッション
コメント一覧
まだ、コメントがありません