2

私の顧客モデルには、作成時刻と更新時刻を格納するための 2 つの日時フィールドがあります。

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

顧客を作成すると、データベースに現地時間が保存されます。API を介してこの顧客データを取得すると、日時が gmt 時間で返されます。これで問題ありません。しかし、データベースに gmt 時間を保存したいと思います。現地時間をデータベースに保存することはお勧めできません。

settings.pyファイルの日付設定は

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

「pip install pytz」モジュールを既にインストールしており、データベースは postgresql です。

4

2 に答える 2

0

その通りです。ベスト プラクティスは、日時フィールドを UTC で保存し、タグを使用してビューpytzまたはテンプレートで都合のよいように変換することです。tz

IE、pytzを使用して、ビューの特定の日時に日時を変換できます

import pytz

datetime_with_new_tz = object.created_at.astimezone(pytz.timezone(YOUR_LOCAL_TIMEZONE))`

テンプレートでタイムゾーンを変換したい場合は、使用できますtz

{% load tz %}
{{object.created_at|timezone:YOUR_LOCAL_TIMEZONE}}
于 2017-04-05T13:39:07.630 に答える