Datetime对象以UTC格式存储,并在显示时转换为本地时区。
因此,当我调用timezone.now()
时,它应该将UTC转换为本地时区并相应地显示时间。
我按照django的建议安装了pytz
。
我做了以下事情:
在USE_TZ = True
settings.py
并在models.py
中将对象保存到数据库
from django.utils import timezone
time= timezone.now()
也timezone.activate(pytz.timezone("America/Los_Angeles"))
当我获取存储的时间时,它是2014-10-01 00:50:37
,这比现在提前几个小时。
我哪里错了?
答案 0 :(得分:0)
存储在数据库中的时间是UTC,这是正确的。问题是当我检索它时,它没有被转换为本地时区,它是以UTC格式打印的。 所以我必须在模板中将其转换如下:
{% load tz %}
{{ value|timezone:"America/Los_Angeles" }}
Phew,它有效!