【问题标题】:Django timezone localization not working as expectedDjango 时区本地化未按预期工作
【发布时间】:2013-02-10 12:00:32
【问题描述】:

我正在使用 Django 1.4.3 和 Postgres 9.1.3。这是我的模板,其中message.created_at 是python datetime 对象,它清楚地告诉我日期时间对象存储在GMT 中,因为我可以通过在date 过滤器中传递e 进行调试。尽管我使用了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

【问题讨论】:

  • 您是否尝试过在设置中使用TIME_ZONE = 'Asia/Kolkata'
  • 是的,我试过了,它显示 IST。但是,如果他所在位置的另一个用户(例如 America/Chicago)查看相同的消息怎么办?
  • 您可以按照说明使用timezone.activate
  • @Babu - 你有没有想过这个?我对stable/1.5.x 有同样的问题。今天之前我从来没有遇到过这个问题......

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


【解决方案1】:

您是否正在通过activate 激活本地时区?见this

【讨论】:

  • 好的。如果我添加该中间件,是否需要在每次创建会话时在 request.sessions 中设置django_timezone
【解决方案2】:

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

【讨论】:

猜你喜欢
  • 2020-12-02
  • 1970-01-01
  • 2023-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-19
  • 2018-07-08
  • 1970-01-01
相关资源
最近更新 更多