我正在使用 django-audit-log 来跟踪我的数据的更改。除了一件相当小的事情之外,它还很有效:每当向日志表添加新条目时,都会生成警告:
DateTimeField received a naive datetime while time zone support is active.
我追溯了这一点,发现是日志表中的 action_date 字段导致了它。有谁知道我怎样才能使这个价值时区感知?
我正在使用 django-audit-log 来跟踪我的数据的更改。除了一件相当小的事情之外,它还很有效:每当向日志表添加新条目时,都会生成警告:
DateTimeField received a naive datetime while time zone support is active.
我追溯了这一点,发现是日志表中的 action_date 字段导致了它。有谁知道我怎样才能使这个价值时区感知?
也许 pytz 可以在这里派上用场。它可以将天真的日期时间转换为时区感知时间。看看这里: http: //pytz.sourceforge.net/。
如果你碰巧有一个像这个字符串“ 2012-02-21 10:28:45
”这样的天真日期,你可以这样进行:
from django.utils.dateparse import parse_datetime
naive = parse_datetime("2012-02-21 10:28:45")
import pytz
pytz.timezone("Europe/Helsinki").localize(naive, is_dst=None)
datetime.datetime(2012, 2, 21, 10, 28, 45, tzinfo=<DstTzInfo 'Europe/Helsinki' EET+2:00:00 STD>
(https://docs.djangoproject.com/en/dev/topics/i18n/timezones/#usage)。