【发布时间】:2018-08-31 16:14:16
【问题描述】:
我正在使用Django 1.11。
我的settings.py 有以下配置:
TIME_ZONE = 'Asia/Calcutta'
USE_I18N = True
USE_L10N = True
USE_TZ = True
这是 IST(印度标准时间)。我的系统设置为 IST。 MySQL current_time 返回 IST,Django 运行时的服务器,在 IST 中显示时间戳。 Python 的 datetime.now() 也提供 IST。
现在的问题是,我的models.py 有以下字段:
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
数据库是 MySQL。当我在其中插入任何记录时,时间戳为 UTC。正如this 回答所建议的那样,我正在考虑添加一些中间件,但这并不是推荐的方式。为什么即使在任何地方都配置了 IST 也需要 UTC?我是否缺少一些需要为模型单独设置的配置?
请注意 this question 与我的要求不同。我想更改整体时区,使其在模型中也有效。
【问题讨论】:
-
试试 USE_TZ = True
-
我已经设置了
USE_TZ = True。这个percona.com/blog/2015/01/07/… 确实有效,但它又是一种中间件。我很想知道,当我在任何地方都设置了 IST 时,Model 仍然从哪里获取 UTC,并且我想更新那个确切的点,而不是每次都使用任何中间件。 -
@KevinChristopherHenry 谢谢,这就是我想要的。那么,如果我将其更改为
False,它会正常工作吗?改成False后,是系统的时区还是设置中指定的时区?
标签: python mysql django datetime timezone