在Django中以时区感知的方式查询今天创建的对象(或过去特定天数的特定日期)的最有效方法是什么?
我知道有很多关于此的问题,但大多数答案都不包含时区意识,似乎没有任何明确的最近答案,大多数解决方案都会产生天真的日期时间警告:
RuntimeWarning:DateTimeField收到一个天真的日期时间(2012-10-23 00:00:00)时区支持处于活动状态。
我正在使用时区支持运行Django 1.5,并且整个使用pytz和UTC时区。
答案 0 :(得分:5)
Django有一个内置函数可以将天真的日期时间对象转换为时区感知对象:
from django.utils import timezone
enlightened_date = timezone.make_aware(naive_date, timezone.utc)
答案 1 :(得分:2)
另一种选择是
from django.utils.timezone import utc
utcnow = datetime.utcnow().replace(tzinfo=utc)