RuntimeWarning: DateTimeField Datas.create_date received a naive datetime (2025-10-16 10:55:00) while time zone support is active.
专栏:web开发笔记 Oct. 16, 2025, 11:26 a.m. 95 阅读
datetime不带时区信息的warning

当django开启时区之后,如果数据库中的datetime型字段仍用老的格式(如'2025-10-16 10:55:00')赋值就会报出“RuntimeWarning: DateTimeField Datas.create_date received a naive datetime (2025-10-16 10:55:00) while time zone support is active.”这样的warning。

解决方法是用make_aware给老格式加上时区信息。由于make_aware只能接受datetime类型的变量,所以需要用datetime.strptime()先转一下。

from django.utils.timezone import make_aware
import datetime

now = '2025-10-16 10:55:00'
now_new = makeaware(datetime.datetime.strptime(now, "%Y-%m-%d %H:%M:%S"))
感谢阅读,更多文章点击这里:【专栏:web开发笔记】
最新20篇 开设专栏