我遇到了以下问题,无法弄清楚我在这里遗漏了什么。
我已经在 settings.py 中启用了时区
设置.py
TIME_ZONE = '美国/芝加哥'
USE_TZ = True
用例
现在,当我在下午 3 点 15 分(本地时间)创建对象时,我将以下日期存储在数据库的 created_at 字段中。
created_at = models.DateTimeField(auto_now_add=True)
2014-12-12 11:03:48
当我在我的模板中呈现该日期时,我得到以下值。
{{ image.created_at }} = > 12 月2014 年 12 点,上午 5:03
测试用例
from datetime import datetime
from dateutil.tz import tzutc, tzlocal
utc = datetime.now(tzutc())
print('UTC: ' + str(utc))
local = utc.astimezone(tzlocal())
print('Local: ' + str(local))
我在这里得到正确的日期时间。当我使用 myobject.created_at.astimezone(tzlocal()) 它也返回正确。但它在模板中时我提前 1 小时。为什么?我也尝试了 |local 过滤器,但没有用
我错过了什么?
请您参考如下方法:
将下面的代码片段添加到 base.html
{% load tz %}
{% timezone "Asia/Kolkata" %}
<All content goes here>
{% endtimezone %}
将此继承到所有模板。一切都在“亚洲/加尔各答”时区呈现
