Django时区本地化不按预期工作

时间:2013-02-25 10:55:43

标签: django datetime python-2.7 django-templates timezone

我正在使用Django 1.4.3和Postgres 9.1.3。这是我的模板,其中message.created_at是一个python datetime对象,它清楚地告诉我datetime对象存储在GMT中,因为我可以通过在e过滤器中传递date进行调试。虽然我使用了docs中给出的块和过滤器,但是没有发生到IST的本地时间的转换。它仍然以GMT格式呈现日期时间值。我错过了什么?

{% load tz %}
{% localtime on %}
<div class="m_td_block">
    <span>{{ message.created_at|date:"D, d M, Y e" }}</span>
    <span>{{ message.created_at|time:"h:i A" }}</span>
</div>
{% endlocaltime %}

尝试了另一种方法,

{% load tz %}
<div class="m_td_block">
    <span>{{ message.created_at|localtime|date:"D, d M, Y e" }}</span>
    <span>{{ message.created_at|localtime|time:"h:i A" }}</span>
</div>

这是我的设置,

TIME_ZONE = 'GMT'
USE_I18N = True
USE_L10N = True
USE_TZ = True

2 个答案:

答案 0 :(得分:1)

你是否正在activate激活当地时区?请参阅this

答案 1 :(得分:1)

好。考虑这些帖子post#1post#2我会在注册时手动从用户手中获取时区并将其存储在数据库中。并将与timezone.activate(request.user.timezone)一起使用。