django模型过滤日期时间从午夜开始

时间:2015-11-19 18:31:23

标签: django filter timezone

我使用django模型过滤器和日期。

原始数据有非洲/阿比让的时间(UTC + 00:00),我将这些数据保存在我的数据库中。

我设置了关于亚洲/首尔的时区(UTC + 09:00),它在我的数据库中保存得很好。

但是我使用time_range = [2015-11-15,2015-11-16]过滤数据,我得到的数据是从15点钟到14点钟。我希望从0 o'时钟到23 o'时钟。

我怎么能得到这个?我做这个网址,但它不能很好地工作。

class Post(models.Model):
    created_time = models.DateTimeField()

如果我有一个像post这样的模型,我会从用户那里得到日期。

input_date = '2015-11-16' (from user)
from_date = datetime.strptime(input_date, '%Y-%m-%d').date()
to_date = from_date + datetime.timedelta(days=1)
posts = Post.objects.filter(created_time__range=[from_date, to_date])

我使用了上层代码并从2015-11-15 15:00:00到2015-11-16 14:00:00获得了数据。

1 个答案:

答案 0 :(得分:0)

尝试使用from_date = datetime.strptime(input_date, '%Y-%m-%d')(不使用.date()),可能需要datetime代替date对象。