我完全难以保存用户输入的日期时间。它可以保存,但是会进行某种时区转换。我尝试设置USE_TZ = True和TIME_ZONE ='UTC',但由于某种奇怪的原因,Django保存了我的日期时间,但它从小时开始减少了7。例如,如果我输入日期时间为'2014-01-29 16:56:00',当我查看数据库时,我看到'2014-01-29 09:56:00-07'。我已经阅读过时区文档,但我完全不明白为什么会发生这种情况。任何帮助将不胜感激!Django在DB保存上转换日期时间
1
A
回答
1
看来,这不是专门与Django的问题,但更多的与Postgres问题。由于Django会告诉Postgres创建一个“带时区的时间戳”,因此Postgres会正确存储时间戳,并为您直接从Postgres查询数据时设置一个偏移量,它会向您显示应用偏移量的时间戳。但是当数据返回到Django时,除非您提供了偏移量,否则偏移量将被删除。似乎令人困惑,不知道为什么这样做。对于我的特定用例,我选择编写自定义字段来创建“无时区的时间戳”。 Django只创建“带时区的时间戳”,因此解决此问题的唯一方法是:
用SQL修改表。如果使用South,部署到多个环境可能不是最佳选择。
创建一个自定义字段,创建“没有时区的时间戳”。这是我决定去的路线。希望这是正确的路线。
谢谢大家试图帮助我弄清楚这一点。
0
Django文档状态默认时区设置为:
TIME_ZONE = 'America/Chicago'
这里的链接:
https://docs.djangoproject.com/en/dev/ref/settings/#time-zone
他们设置TIME_ZONE
时,也注明了几个选项。一种选择是按名称手动设置,这里是关Django的文档的链接为TIME_ZONE
名称列表:
相关问题
- 1. DB查询的日期时间转换
- 2. Django日期时间不正确保存
- 3. 在Django中转换并转换回日期时间
- 4. Rails:如何在DB中保存时间时指定日期
- 5. Yii:在DB中保存日期和时间
- 6. 保存日期数组DB
- 7. Django保存日期
- 8. 日期时间错误时将更改保存到DB
- 9. 保存日期和时间
- 10. 保存日期时间
- 11. 节省日期时间转换日期
- 12. 转换日期时间
- 13. ASP.NET日期/时间转换
- 14. 转换日期时间
- 15. 日期时间JodaTime转换
- 16. 转换日期时间IST
- 17. 日期时间转换
- 18. 转换日期时间
- 19. c#,日期时间转换
- 20. SQLite日期时间转换?
- 21. SQL转换日期时间
- 22. Informatica日期/时间转换
- 23. 日期时间转换
- 24. 日期和时间转换
- 25. 转换PHP日期时间
- 26. 日期时间转换
- 27. 日期时间转换PHP
- 28. Java:日期时间转换
- 29. XSLT转换日期时间
- 30. SQL日期时间转换
是在settings.py中正确设置的时区? – sirFunkenstine
我相信如此,我的设置设置为TIME_ZONE ='UTC'。我猜更大的问题是,在保存到模型时,Django是否总是尝试进行某种时区转换? – tmuzzin