我在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小时)的所有模板中显示日期。但我希望项目时区为“America/Chicago”,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"
?
见:http://docs.djangoproject.com/en/dev/ref/settings/#time-zone。
试试这个。。。。。。。。。。
这更像是一个python问题,您可以使用
timedelta
变量向datetime
添加时间。例如或者可以直接更改
datetime
的时区,例如:或者使用
now
函数中的tzinfo
变量:因此,在将某些内容传递到模板之前,必须完成这些更改。
相关问题 更多 >
编程相关推荐