1

私の顧客モデルでは、作成時刻と更新時刻を格納するための2つのdatetimeフィールドがあります。Django:現地時間の代わりにgmt時間をデータベーステーブルに格納

datetime_created = models.DateTimeField(auto_now_add=True) 
datetime_updated = models.DateTimeField(auto_now=True) 

私は顧客を作成すると、今では私はAPIを介して、この顧客データを取得すると、それは、GMT時間に日時を返して、データベース内のローカル時間を記憶しています。これは問題ありません。しかし、私はgmtの時間をデータベースに保存したい。私はデータベースにローカル時間を格納することは良い方法ではないと思います。 settings.pyファイルに

日付の設定は、私はすでに「pytzをインストールピップ」モジュールをインストールしているし、私のデータベースはPostgreSQLのある

LANGUAGE_CODE = 'en-us' 
TIME_ZONE = 'UTC' 
USE_I18N = True 
USE_L10N = True 
USE_TZ = True 

です。

+0

のを使用することができます

あなたの意見では、特定の日時に、あなたの日時を変換する

import pytz datetime_with_new_tz = object.created_at.astimezone(pytz.timezone(YOUR_LOCAL_TIMEZONE))' 
をpytzを使用することができますコースはUTCで保存するのがよい方法です。私はあなたのdatetimeをutcに保存することをお勧めします。これは 'pytz'を使用して、または' tz'タグ –

答えて

3

ベストプラクティスは、UTC形式で保存することです。お使いの設定で

USE_TZ = True は、Djangoの店は、日付と時刻の情報UTCでデータベースにそれ以外の場合は

0

あなたはrigthだが、ベストプラクティスはUTCあなたの日時フィールドに保存することです素朴な日時を格納する、としますpytzを使用して、またはtzタグを使用してテンプレート内であなたのビューであなたの利便性に変換してください。

IE、あなたはあなたのテンプレートにタイムゾーンを変換したい場合、あなたはtz

{% load tz %} 
{{object.created_at|timezone:YOUR_LOCAL_TIMEZONE}} 
関連する問題