如何在 Django 中显示不同时区的所有日期时间对象

问题描述

我对 Django 比较陌生。

我所有的日期时间对象都是 UTC,我的 settings.py 文件TIME_ZONE = 'UTC'

当这些 datetime 对象使用 {{ obj.datetime }} 显示在我的 html 模板中时,它们会在 UTC显示,我想在 UTC-05:00 中显示它们

我该如何更改?

注意:我使用的是基于类的视图

解决方法

您可以在 settings.py 集中更改全局时区:

TIME_ZONE = 'America/Panama'

对于 UTC-05:00

或者您可以在模板中使用过滤器 timezone - 参见 Django documentation

{% load tz %}

{{ obj.datetime|timezone:"America/Atikokan" }}

{% timezone "America/Panama" %}
    Panama time: {{ value }}
{% endtimezone %}

如何查看所有可用的时区?

pytz 提供 helpers,包括当前时区列表和所有可用时区列表 - 其中一些仅具有历史意义。

来自维基百科的时区列表:https://en.wikipedia.org/wiki/List_of_tz_database_time_zones

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...