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

How to display all datetime objects in a different timezone in Django

我对 Django 比较陌生。

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

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

我该如何更改?

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

您可以在 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 provides helpers,包括当前时区列表和所有可用时区列表——其中一些仅供历史参考。

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