2015-11-07 43 views
1

这是我的settings.py:的Django/DRF - 更改时区不工作

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设置?)。

+1

试试这个USE_TZ =假 – Serjik

+0

@Serjik这工作。谢谢!你可以把它作为答案,我会检查它。在附注中,为什么它工作? “USE_TZ”不应该是“真”,以便Django可以使用我设置的时区? – user2719875

回答

1

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

所以试试这个

USE_TZ = False