如何在 Django 视图中以本地时区显示 UTC 时间?

How to show UTC time in local timezone in Django view?

我在我的 Django 应用程序中使用 UTC,我想显示我当地时区的时间; 'Europe/Stockholm'。我只是无法让这个简单的事情发挥作用,所以我一定是做错了什么。我只是不知道它是什么...

这是我的 settings.py:

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True

这就是我获取传递到模板的日期的方式:

my_time = datetime.datetime.utcnow()

最后这是我的模板文件中的内容:

{% load tz ‰}

{% timezone 'Europe/Stockholm' %}{{ my_time|time }}{% endtimezone %}

但是无论我在 {% timezone ... %} 中使用什么时区,日期总是读取相同的 20:31,而当地时间实际上应该是 22:31。

感谢对此的任何帮助!

settings.py 中将 TIME_ZONE = 'UTC' 更改为 TIME_ZONE = 'Europe/Stockholm'

您还需要将 utcnow() 方法替换为 now()

my_time = datetime.datetime.now()

normal way使用本地时间是设置TIME_ZONE或调用activate().

也就是说,您可以根据需要使用 timezone 模板标签。问题出在 utcnow(). As noted in the documentation, that returns a naive datetime, which means that it's not timezone-aware. Use Django's now() 上;这将 return 一个可以调整的时区感知日期时间。