如何在Django模板中显示本地化时间

8 投票
2 回答
11820 浏览
提问于 2025-04-18 11:18

简单来说,next_contact 是一个UTC时间格式的日期和时间。当我在模板中写的时候,

{{ event.next_contact }}

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

{{ event.next_contact.time }}

结果我得到了不经过本地化的时间。

怎么解决这个问题呢??

2 个回答

5

与其使用属性,不如直接在日期时间上使用 time 过滤器:

{{ event.next_contact|time }}
6

使用 {{ event.next_contact|localtime|date:"H:i" }}。如果你设置了 USE_TZ=True,那么可以省略 localtime 这个过滤器。

Django 1.7 开始,当你传入一个带有时区信息的日期时间值(也就是一个知道时区的日期时间实例)时,time 过滤器 将会接受与时区相关的格式说明符 'e', 'O', 'T' 和 'Z'。

撰写回答