How to store a naive datetime in Django 1.4
我有一个天真的日期和时间,格式是"2012-05-19 19:13:00",需要使用django 1.4和它的时区感知能力来存储它。
虽然没有办法知道日期最初在哪个时区,但似乎将其存储为UTC是有意义的。
但是,使用pytz等,我不知道如何将没有时区的日期转换为UTC日期时间。
如果它没有TZINFO,那么当然不能转换为UTC。相反,您可以将datetime对象设置为一个时区感知对象:
1 2 3 4 5 | import datetime from pytz import UTC dt = datetime.datetime.now() # just some date tz_aware_dt = dt.replace(tzinfo=UTC) |
编辑:
Django 1.4的迁移指南使用此功能来完成上述任务:
1 2 3 4 5 | >>> 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"。