2

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

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

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

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

4

2 回答 2

5

Django 有一个内置函数可以将天真的日期时间对象转换为时区感知对象:

from django.utils import timezone

enlightened_date = timezone.make_aware(naive_date, timezone.utc)
于 2012-10-25T04:44:42.513 回答
2

另一种选择是

from django.utils.timezone import utc
utcnow = datetime.utcnow().replace(tzinfo=utc)
于 2012-10-25T05:45:30.457 回答