Django:timezone.now()即使在了解timedate对象之后也是不合适的

时间:2014-10-01 01:30:13

标签: django django-timezone

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,这比现在提前几个小时。 我哪里错了?

1 个答案:

答案 0 :(得分:0)

存储在数据库中的时间是UTC,这是正确的。问题是当我检索它时,它没有被转换为本地时区,它是以UTC格式打印的。 所以我必须在模板中将其转换如下:

{% load tz %}
{{ value|timezone:"America/Los_Angeles" }}

Phew,它有效!