1

这是我的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 设置吗?)。

4

1 回答 1

2

当启用对时区的支持时,Django 以 UTC 格式将日期时间信息存储在数据库中,在内部使用时区感知的日期时间对象,并将它们转换为模板和表单中的最终用户的时区。 django 文档

所以试试这个

USE_TZ = False
于 2015-11-07T04:20:56.363 回答