在我的settings.py中,TIME_ZONE设置为' UTC'。
在我的一个模型中,我从外部API导入created_on
字段,该字段以utc格式返回时间。例如:1515374422.0
要将其转换为DateTime格式,我使用:
created_on=datetime.datetime.fromtimestamp(float(1515374422.0))
post=Post(name="ABC", created_on=created_on)
但是,它始终以RunTime警告:
运行RuntimeWarning:DateTimeField Image.added_on收到了一个天真的日期时间 (2017-12-14 14:48:22)虽然时区支持有效。
我不明白。那是什么意思? DateTime转换代码有问题吗?
答案 0 :(得分:1)
简短的回答是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
。