如何在Django 1.4中存储一个天真的日期时间

Phi*_*ord 8 python django pytz

我有一个天真的日期和时间,格式为'2012-05-19 19:13:00',需要使用Django 1.4及其时区感知功能存储它.

虽然无法知道日期最初的时区,但将它存储为UTC似乎是有意义的.

但是,使用pytz等,我不知道如何将没有时区的日期转换为UTC日期时间.

XOR*_*ist 6

如果它没有tzinfo那么当然不能转换为UTC.相反,您可以将datetime对象设置为时区感知对象:

import datetime
from pytz import UTC

dt = datetime.datetime.now()  # just some date
tz_aware_dt = dt.replace(tzinfo=UTC)
Run Code Online (Sandbox Code Playgroud)

编辑:

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>)
Run Code Online (Sandbox Code Playgroud)

您应该使用该版本,将"Europe/Helsinki"替换为"UTC".