DateTimeField received a naive datetime
我有带datetimefield列的模型。
我尝试通过SQL查询将带有数据库当前时间值的行直接插入到表中。
我对MySQL数据库的SQL查询如下:
1 | INSERT INTO MyTable (..., my_datetime, ...) VALUES (..., current_time, ...) |
得到:
RuntimeWarning: DateTimeField ModelName.field_name received a naive
datetime (2014-01-09 22:16:23) while time zone support is active.
如何通过SQL查询将当前时间直接插入表而不发出警告?
除错误答案外,如果已经创建了日期时间,则可以将其转换为时区感知:
1 2 | from django.utils import timezone my_datetime = timezone.make_aware(my_datetime, timezone.get_current_timezone()) |
用
1 2 | from django.utils import timezone current_time = timezone.now() |
您还可以使用来自
UTC:
1 2 | import pytz dt_aware = pytz.utc.localize(dt_naive) |
任何其他时区:
1 2 3 | import pytz tz = 'Europe/Berlin' #or whaterver timezone you want dt_aware = pytz.timezone(tz).localize(dt_naive) |
这里是时区列表。