2012-10-24 180 views
2

在Django中以可识别时区的方式查询当前创建的对象(或过去某个特定天数的特定日期)的最有效方法是什么?Django日期时间查询

我知道有很多关于这个问题,但答案大多没有纳入时区的认识,似乎没有被任何明确的答案,最近,大多数解决方案将产生天真的日期时间的警告:

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

我正在运行带有时区支持的Django 1.5,并且始终使用pytz和UTC时区。

回答

2

另一种选择是

from django.utils.timezone import utc 
utcnow = datetime.utcnow().replace(tzinfo=utc) 
5

的Django有一个内置的功能转换天真的日期时间对象时区知道的:

from django.utils import timezone 

enlightened_date = timezone.make_aware(naive_date, timezone.utc)