2012-05-19 6 views
8

日時は '2012-05-19 19:13:00'という形式で保存しておく必要があり、Django 1.4とタイムゾーン対応の能力を使用して保存する必要があります。Django 1.4で素朴な日時を保存する方法

日付が元々入っているタイムゾーンを知る方法はありませんが、UTCのように保存するのは意味があるようです。

しかし、pytzなどを使用すると、タイムゾーンのない日付をUTC datetimeに変換する方法がわかりません。

答えて

6

tzinfoがない場合、もちろんUTCへの変換はできません。代わりに、あなただけのタイムゾーンに気づい1をDateTimeオブジェクトを作ることができる:

import datetime 
from pytz import UTC 

dt = datetime.datetime.now() # just some date 
tz_aware_dt = dt.replace(tzinfo=UTC) 

編集:

migration guide for django 1.4は、上記を達成するために、これを使用しています。

>>> from django.utils.dateparse import parse_datetime 
>>> naive = parse_datetime("2012-02-21 10:28:45") 
>>> import pytz 
>>> pytz.timezone("Europe/Helsinki").localize(naive) 
datetime.datetime(2012, 2, 21, 10, 28, 45, tzinfo=<DstTzInfo 'Europe/Helsinki' EET+2:00:00 STD>) 

あなたはおそらくことを使用する必要がありますUTC "に" Europe/Helsinki "を代入してください。

+0

賢い、ありがとう。 'pytz.UTC.localize(naive)'を実行することはそのトリックを行うようです。 –

関連する問題