这是我的settings.py:
TIME_ZONE = 'America/Toronto'
USE_I18N = True
USE_L10N = True
USE_TZ = True
之前,它曾经是TIME_ZONE = 'UTC'
,但我现在才改变它。我在更改后重新启动了开发服务器并创建了一个帖子,但是创建帖子的日期和时间现在仍然是根据多伦多时区(它仍然遵循它所在的上一个时区)。我的模型使用默认的DateTimeField:
createdAt = models.DateTimeField(auto_now_add=True, blank=True)
为了使时区更改生效,还有其他需要更改的内容吗?我刚试过
python manage.py makemigrations
python manage.py migrate
但它表示未检测到任何变化(如预期的那样)。
编辑:请注意,我也使用DRF和序列化程序来序列化帖子。我不确定这是否会有所不同(我是否需要更改任何DRF设置?)。
答案 0 :(得分:2)
当启用对时区的支持时,Django将日期时间信息以UTC格式存储在数据库中,在内部使用时区感知日期时间对象,并将它们转换为模板和表单中最终用户的时区。 django docs
所以试试这个
USE_TZ = False