运行Django web应用程序和设置.py具有以下功能:
TIME_ZONE = 'UTC'
模型的时间字段设置为datetime.datetime.utcnow()
。当我查看管理屏幕中的字段时,它是正确的,UTC时间戳为距离我的本地时间+8小时。
然而,当我在客户端上显示时间时,距离我的本地时间还有+8(总共+16小时)。
当我遍历代码时,日期没有变化。当从数据库中查询时间戳时,它与实际UTC的偏移量为+8。
我做错了什么?我们正在Windows上运行开发环境,有一些关于结果不准确的警告。但我也把它推到了我们的Linux盒子里,结果是一样的。
在settings.py
中,如果
USE_TZ = True
那么结果可能不如预期。我相信有文档,但我只是错过了。当我删除设置时,时间按预期报告。
由@Two BitAlchemist提供:
这是相关文件。特别是,如果您没有USE_TZ=True,它会假设您使用的每个日期都是您的本地时间,并将其转换为UTC