gpt4 book ai didi

python - pytz 时区标签以调整模板中打印的日期

转载 作者:太空宇宙 更新时间:2023-11-03 11:07:46 26 4
gpt4 key购买 nike

在我的应用程序中,我使用普通的日期时间对象。在我的模板中:

{% load tz %}

{{datetimeobject|timezone:"Europe/Paris"}}

{% timezone "Europe/Paris" %}
{{datetimeobject}}
{% endtimezone %}

这会打印出如下内容:

Dec. 5, 2012, 4 p.m.
Dec. 5, 2012, 3 p.m.

因此时区过滤器会调整日期,但时区标签不会。

这是为什么呢?以及如何正确使用标签?我的目标是调整整个模板中的所有日期时间对象,而不向模板中打印的每个日期时间对象添加过滤器。


编辑

我试图让我的日期对象知道时区:

offset = timezone('Europe/London')
datetimeobj.replace(tzinfo=offset)

但这没有帮助 - 仍然是以前的代码,但使用 tz 感知 datetimeobject 是:

Dec. 5, 2012, 4 p.m.
Dec. 5, 2012, 3 p.m.

已解决:我在上面的代码中有一个错误 - 应该是:

offset = timezone('Europe/London')
datetimeobj = datetimeobj.replace(tzinfo=offset)

最佳答案

您说您使用“普通日期时间对象”,但显然它们是 timezone naive instead of timezone aware .

timezone filter “强制将单个值转换为任意时区”,而 timezone tag只需将当前时区设置到 endtimezone 标记。

您的 datetimeobject 是时区原始的,时区过滤器会将其转换为具有默认时区的时区感知日期时间,然后在提供给过滤器的时区中表示它。

关于python - pytz 时区标签以调整模板中打印的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14635446/

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