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