1

私はdjangoアプリケーションを持っており、データベース(postgres)に日時をUTCで保存しており、世界中にユーザーがいます。

しかし、アプリケーション ロジックでは、ローカル時間の範囲に応じていくつかの検証を行っています。私はそれを実行するのに問題があり、いくつかのデバッグを行っています。UTC は月曜日の午前 2 時ですが、ユーザー (アメリカ/グアヤキル) UTC-5 はまだ日曜日の 21:00 です。DAYが変更されたため、ユーザーにとっては失敗します。

ユーザーのタイムゾーンをユーザーテーブルに保存することを考えていますが、設定方法と前のシナリオを防ぐ方法がわかりません。

副次的な質問として、データベースに保存されている UTC 日時を (たとえば) 電子メール通知用にユーザーのタイムゾーンに変換するにはどうすればよいですか。(私は、彼が頭の中で計算できるように、日時とタイムゾーンを記載したメールを彼に送信するつもりはありません)。

4

3 に答える 3

-1

デフォルトの django は、アメリカ/シカゴのタイム ゾーンを使用します。ユーザーのタイムゾーンをデータベースに保存し、ユーザーがログインするたびにDBからタイムゾーンを取得し、コードを介して構成を変更する必要がある最善の方法。

import datetime
from django.utils.timezone import utc
now = datetime.datetime.utcnow().replace(tzinfo=utc)

https://docs.djangoproject.com/en/dev/ref/settings/#time-zone

于 2013-07-15T04:41:54.537 に答える