关于python:runtimewarning:datetimefield在django中接收到一个简单的datetime

RuntimeWarning: DateTimeField received a naive datetime in django

我正在为我的一个django模型设置一个日期时间字段。我的代码如下:

1
2
dt = datetime.fromtimestamp(mktime(parsed_feed.updated_parsed))
feed.updated = dt

更新后的分析IS结构的格式为:

1
time.struct_time(tm_year=2016, tm_mon=4, tm_mday=26, tm_hour=8, tm_min=20, tm_sec=43, tm_wday=1, tm_yday=117, tm_isdst=0)

更新的显然是django日期时间字段。我正在尝试将该结构转换为日期时间对象,然后将其设置为我的字段。一切都很好地工作,并且设置了正确的日期和时间,但是,我在控制台中得到了这个错误(警告):

1
2
RuntimeWarning: DateTimeField Feed.updated received a naive datetime (2016-04-26 08:25:08) while time zone support is active.
  RuntimeWarning)

如何将时区支持集成到日期时间对象(dt)中?


如本答案所述:

下面的行创建一个幼稚的(不区分时区)日期时间:

1
creationDate = datetime.datetime.now()

尝试将该行更改为:

1
creationDate = timezone.now()

不要忘记在代码开头导入时区:

1
from django.utils import timezone

使用PYTZ包装。所以把Pytz导入到你的视图中。

1
2
t = pytz.timezone('Europe/Warsaw').localize(
    datetime(2013, 5, 11, hour=11, minute=0))

你的时区应该在你的设置中设置。使用pytz进行日期时间和时区转换-令人兴奋的行为