如何存储一个天真的日期时间在Django 1.4(How to store a naive date

2019-07-29 11:12发布

我的格式为“2012-05-19 19时13分00秒”一个天真的日期和时间,需要将它存储使用Django 1.4和时区感知能力。

虽然没有办法知道什么时区的日期是在最初,它似乎很有道理保存它,就好像它是UTC。

然而,使用pytz等等,我不知道如何转换不具有时区为UTC日期时间的日期。

Answer 1:

如果它没有tzinfo那么当然就没有转换为UTC。 相反,你可以只让DateTime对象到一个时区的感知之一:

import datetime
from pytz import UTC

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

编辑:

所述用于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”。



文章来源: How to store a naive datetime in Django 1.4