gpt4 book ai didi

python - 如何在模板中显示本地时间

转载 作者:行者123 更新时间:2023-11-29 12:41:28 24 4
gpt4 key购买 nike

我正在使用 PostgreSQL 存储一个带有 DateTimeField 的对象。
DateTimeField 使用 auto_now_add 选项。
它是从 Django Rest Framework 中的序列化程序自动创建的。

Django docs 中所述,我尝试获取本地时区并激活它。

from django.utils.timezone import localtime, get_current_timezone

tz = get_current_timezone()
timezone.activate(tz)
session.started_at = localtime(session.started_at)

在模板 index.html 中,我也尝试加载时区。

{% localtime on %}
Session: start time {{ item.session.started_at }}
{% endlocaltime %}

settings.py

USE_TZ = True
TIME_ZONE = 'UTC'

我使用的是 GMT+7 时区,但模板上仍然显示 UTC 时间。

我正在使用 Django 开发服务器进行测试。

我错过了什么吗?

最佳答案

假设您所有的日期时间都以 UTC 格式正确存储在数据库中,您可以在模板中使用 tz django 实用程序将日期转换为本地时间

IE 如果日期时间存储为 2017 年 10 月 12 日 18:00:00,我想将其转换为 America/La_Paz 本地时间 (GMT -4) 我可以使用

session :开始时间 {{ item.session.started_at|timezone:"America/La_Paz"}}

并且在模板中将显示本地时间 America/La_Paz(在本例中为 2017 年 10 月 12 日 14:00:00)

模板/my_template.html

{% load tz %}
<!-- some html code here -->
Session: start time {{ item.session.started_at|timezone:"America/La_Paz" }}

您可以在您的 View 中创建一个 cotext var 或一个 var 来设置您要用于在模板中转换日期的时区,并使用它来进行转换

在您看来:my_timezone = 'A VALID TIMEZONE NAME'

再次在你的模板中

模板/my_template.html

{% load tz %}
<!-- some html code here -->
Session: start time {{ item.session.started_at|timezone:my_timezone}}

关于python - 如何在模板中显示本地时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48383549/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com