我使用django 1.10来显示日期时间。日期时间存储在mongodb中,并且它总是没有时区信息的UTC,所以我需要根据机器运行django的时区显示日期时间。
首先,在settings.py中添加
TIME_ZONE = 'Asia/Chongqing'
USE_I18N = True
USE_L10N = True
USE_TZ = True
然后在views.py中添加:
import pytz
from tzlocal import get_localzone
from django.utils import timezone
local_tz = get_localzone()
timezone.activate(local_tz)
# make datetime object and pass it to html to render
template.html中的:
{% load tz %}
<table border="1">
{% for i in online %}
<tr>
<td align='center'>{{ i.time|localtime}}</td>
</tr>
{% endfor %}
</table>
但是日期时间仍然是UTC,即使我将tzinfo添加到传递给html的日期时间。
我错过了什么吗?
答案 0 :(得分:0)
为了使本地时间过滤器起作用,您需要包括:
{% load tz %}
https://docs.djangoproject.com/en/2.2/topics/i18n/timezones/#std:templatefilter-localtime