【发布时间】:2013-01-31 12:20:46
【问题描述】:
我在 settings.py 中设置了 TIME_ZONE = 'America/Chicago' 的 django 项目。
我正在使用这样的日期:
from django.utils.dateparse import parse_datetime
import datetime
from datetime import datetime
dateobject = parse_datetime(some_string)
now = datetime.now()
if now > dateobject:
# do something
然后在我使用的模板中:
dateobject|date:"d M Y H:i"
我想在不同时区的所有模板中显示日期(例如 +6 小时)。但我希望项目时区为“美国/芝加哥”,并且 datetime.now() 返回的日期在这个时区。所以我只想将所有显示的日期更改为 +6 小时。我怎样才能做到这一点?
编辑
好的,这对我有用:
{% load tz %}
{{ datetimevalue|timezone:"Europe/Paris" }}
它打印 +1 小时的日期。但这不起作用:
{% load tz %}
{% timezone "Europe/Paris" %}
{{ datetimevalue }}
{% endtimezone %}
它打印日期不变。我必须为所有模板全局设置它。我该怎么做?
我总是使用日期过滤器 (dateobject|date:"d M Y H:i"),所以也许有什么方法可以全局“挂钩”此过滤器以将其更改为 dateobject|timezone:"Europe/Paris"|date:"d M Y H:i"?
【问题讨论】:
标签: python django datetime django-timezone