Django模板标签,python timezone意识到日期不同的结果

时间:2014-12-04 08:40:29

标签: django

我有:

TIME_ZONE = 'Europe/Paris'
USE_L10N = True
USE_TZ = True

在我的settings.py文件中。我住在伊斯坦布尔/土耳其,巴黎和伊斯坦布尔之间有一个小时的差别。

在管理员方面选择日期时,django会正确显示1小时的差异。使用模板标签我得到了我在管理员中设置的日期时间。

但是当我通过python使用beginning_date.strftime("%H:%M") python substracts传递datetime时,距离通过admin设置的值1小时是不正确的。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

使用Django模板defaultfilters在Python代码中格式化日期。

from django.template.defaultfilters import date as _date

_date(datetime_object, "%H:%M")

而且,可能相关:Django无法在Windows中可靠地使用备用时区。 See documentation

答案 1 :(得分:0)

我不认为土耳其与此有任何关系。

我的猜测是,您所看到的一小时差异在巴黎时区之间 - 默认情况下用于解释和显示日期 - 和UTC - 用于存储{{1} },以及从数据库返回的datetime的时区。

如果这是正确的,那么您只需使用django.utils.timezone.localtimedatetime转换为当前时区(默认情况下为datetime):

TIME_ZONE