TL; DR;Python字符串到Django时区(知道日期时间)
如何转换2016-01-01
为django timezone
?
完整版
我收到一个查询字符串参数从一种形式,我想获得这个字符串,并把它作为在Django日期时间过滤器。 问题是,当我将字符串转换为日期时间时,由于时区不同,我没有做出明显的日期时间,所以我失去了几个小时。也许我在格式化方面失去了自己,但我无法做到。
我有pytz,我在我的设置中也有USE_TZ = True
。
例如:
from datetime import date
# Example from what I receive as GET querystring parameter
start_date, end_date = '15-01-2016', '16-01-2016'
DATE_FORMAT = '%Y-%m-%d'
start_date = start_date.split('-')
start_date = date(int(start_date[2]), int(start_date[1]), int(start_date[0]))
sd_filter = start_date.strftime(DATE_FORMAT)
end_date = end_date.split('-')
end_date = date(int(end_date[2]), int(end_date[1]), int(end_date[0]))
ed_filter = end_date.strftime(DATE_FORMAT)
#query
my_list = MyModel.objects.filter(created_at__range=(sd_filter, ed_filter))
问题出在过滤器..我失去了几个小时,由于从djanto设置时区。
UPDATE1:我不需要一个datetime.now()
我的时间转换。我需要一个字符串时间值转换..
任何帮助?
在此先感谢
您在模型中使用了什么字段类型? 'DateField()'?如果是这样,您可以将两个'date'对象('start_date'和'end_date')传递给'created_at__range =()'过滤器。 – gtlambert
[Python时区转换]可能的重复(http://stackoverflow.com/questions/10997577/python-timezone-conversion) –
@ lambo477这是一个'DateTimeField',我试过这样做..但它仍然缺少几个小时来自utc。 – jarussi