Django日期时间查询

时间:2012-10-24 20:29:13

标签: python django datetime django-queryset

在Django中以时区感知的方式查询今天创建的对象(或过去特定天数的特定日期)的最有效方法是什么?

我知道有很多关于此的问题,但大多数答案都不包含时区意识,似乎没有任何明确的最近答案,大多数解决方案都会产生天真的日期时间警告:

  

RuntimeWarning:DateTimeField收到一个天真的日期时间(2012-10-23   00:00:00)时区支持处于活动状态。

我正在使用时区支持运行Django 1.5,并且整个使用pytz和UTC时区。

2 个答案:

答案 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)