1

我正在使用 django-audit-log 来跟踪我的数据的更改。除了一件相当小的事情之外,它还很有效:每当向日志表添加新条目时,都会生成警告:

DateTimeField received a naive datetime while time zone support is active.

我追溯了这一点,发现是日志表中的 action_date 字段导致了它。有谁知道我怎样才能使这个价值时区感知?

4

1 回答 1

1

也许 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)。

于 2013-08-15T14:56:37.653 回答