【问题标题】:How to display localized time from datetime in django template如何在 django 模板中显示来自日期时间的本地化时间
【发布时间】:2014-06-27 09:40:48
【问题描述】:

简而言之。 next_contact 是 UTC 日期时间 当我在模板中书写时

{{ event.next_contact }}

我得到正确本地化的日期和时间 但是在这个地方我只想要输出时间,所以我这样做了:

{{ event.next_contact.time }}

然后我得到非本地化时间

如何解决??

【问题讨论】:

  • 也许 docs about timezones 有点帮助。
  • 按照您的建议,我在{% load tz %} 之后尝试了{{ event.next_contact.time|localtime }},但它输出空字符串 - 认为是因为 .time 不存储时区信息
  • {{ event.next_contact|localtime|date:"H:i" }} 这样的东西应该可以工作。
  • 是的。我只是想太多 python ...而且本地时间在我的情况下是不必要的 - 我在设置中得到了 'USE_TZ=True'
  • 也许将其作为答案发布...这是您的功劳...

标签: python django datetime django-templates


【解决方案1】:

使用{{ event.next_contact|localtime|date:"H:i" }}。如果您设置了USE_TZ=True,则可以跳过localtime 过滤器。

Django 1.7 开始,当传递带有附加时区信息的日期时间值(可识别时区的日期时间实例)时,time filter 将接受与时区相关的格式说明符 'e'、'O'、'T'和“Z”。

【讨论】:

    【解决方案2】:

    不使用属性,只需在日期时间上使用time 过滤器:

    {{ event.next_contact|time }}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多