首页 > 解决方案 > 如何在 Django 中显示不同时区的所有日期时间对象

问题描述

我对 Django 比较陌生。

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

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

我怎样才能改变这个?

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

标签: djangodjango-templatesdjango-timezone

解决方案


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

TIME_ZONE = 'America/Panama'

对于 UTC-05:00

或者您可以timezone在模板中使用过滤器 - 请参阅 Django文档

{% load tz %}

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

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

如何查看所有可用时区?

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

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


推荐阅读