繁体   English   中英

Django运行时警告,因为收到了本地DateTime。 怎么解决?

[英]Django RunTime Warning due to receiving a native DateTime. How to solve?

在我的settings.py中,TIME_ZONE设置为“ UTC”。

在我的一个模型中,我要从外部API导入created_on字段,该API以utc格式返回时间。 例如: 1515374422.0要将其转换为DateTime格式,请使用:

created_on=datetime.datetime.fromtimestamp(float(1515374422.0))
post=Post(name="ABC", created_on=created_on)

但这总是在运行时警告:

RuntimeWarning:在启用时区支持的情况下,DateTimeField Image.added_on收到的日期时间很短(2017-12-14 14:48:22)。

我不明白 这意味着什么? DateTime转换代码有问题吗?

简短的答案是django orm希望所有datetime对象都设置时区。 对于您的代码,由于您知道时区将采用UTC格式,因此您只需执行以下操作:

import pytz
created_on=datetime.datetime.fromtimestamp(float(1515374422.0))
created_on = created_on.replace(tzinfo=pytz.utc)
post=Post(name="ABC", created_on=created_on)

附加行将添加创建时区的时区信息,以便您明确要求使用UTC的datetime时间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM