私がこれを行う方法は、pytzの有効なタイムゾーン名を使用しています。私はその後、などのCharフィールドとしてタイムゾーンを設定した場所のクラスを持っているすなわち
TIMEZONES = (
'Canada/Atlantic',
'Canada/Central',
'Canada/Eastern',
'Canada/Mountain',
'Canada/Pacific',
)
、私は必要なものだけを反映するように、私のリストを調整する:私は空白&ヌルを設定
class Location(models.Model):
....
time_zone = models.CharField(max_length=100, blank=True, null=True, choices=TIMEZONES) # 64 min
....
お知らせフィールドをオプションにするにはTrueに設定します。詳しいアイデアについては、django-timezone-field fields.pyをご覧ください。 pytzと私のコードでこれを使用するには
、私はタイムゾーンをインポートします。
from pytz import timezone
import datetime
from locations.models import Location # my object that has the time_zone field
loc = Location.objects.get(pk=1) #get existing location or your object that has time_zone field
utc = pytz.utc
some_utc_date = datetime.datetime(2002, 10, 27, 6, 0, 0).replace(tzinfo=utc) #tz aware
some_date.astimezone(timezone(loc.time_zone))
は、あなたの位置に対応する日時フィールドでのdatetime.datetime(2002、10、27、6、0、0)を交換またはtime_zoneフィールドを持つ特定のオブジェクトです。私の場合、すべての日付フィールドをUTC形式でMongoDBコレクションに格納します。データを取得して人間が読み取り可能な出力を作成する場合は、上記の方法を使用して出力に日付を表示します。テンプレートでこれを処理するカスタムタグを作成することもできます。詳細は、pytz docを参照してください。彼/彼女が実行したとき、私はそうどこかで自分のアプリケーションをsumbitしたい
このアプリはそこにPytzが走っている環境でなければなりませんか? –