如何在 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 一个可以调整的时区感知日期时间。
我在我的 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 一个可以调整的时区感知日期时间。