繁体   English   中英

Django 1.4 和时区

[英]Django 1.4 and timezones

在 django 文档中,写道它们始终可以将日期时间对象存储在设置中提供的 TIME_ZONE 中。

我想问的是,仅对时间感知对象进行日期设置就足够了吗,还是我们必须将它们转换为 TIME_ZONE 设置? 即,如果我的 TIME_ZONE =“America/Los_Angeles”和 USE_TZ = True,并且我尝试保存一个时区感知 object,它位于“UTC”中,这会起作用吗? 也就是说,在保存到数据库之前,django 会将“UTC”时区 object 转换为“America/Los_Angeles”吗?

我相信使用USE_TZ = True django 会将所有内容保存到 UTC 中的数据库中。 每个 DateTime object 都必须知道时区才能保存。 当 django 从数据库中检索日期时间时,它会自动将其从 UTC 更改为设置中TIME_ZONE指示的时区中的感知时间。

因此,为了回答您的问题,如果您在 UTC 中有一个可识别时区的日期时间(比如 19:00)并保存它,它将作为 19:00 保存到数据库中。 当您检索它时,django 将使它在“America/Los_angelos”中识别 TZ,因此日期时间现在为 12:00。

您还可以通过调用覆盖设置中的当前时区设置

from django.utils import timezone
timezone.activate('US/Central')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM