【发布时间】:2020-07-06 21:03:20
【问题描述】:
我在东部标准时间 (EST)。夏令时开始于 2 周前,时钟拨快了 1 小时(所以下午 5 点变成了下午 6 点)。我有USE_TZ = True。 TIME_ZONE 设置为“EST”。
在我的应用中,我有一个提交日期的表单,例如凌晨 2 点。那个日期,仍然是凌晨 2 点,作为 DateTime 字段保存在模型中:event.start = date。我有一个呈现日期的视图,并且页面正确显示了凌晨 2 点。
问题:event.start 计算结果为凌晨 3 点(美国东部标准时间)/早上 8 点(世界标准时间),1 小时后应该是这样!输入是 2AM,它甚至在模板中呈现 2AM,但由于某种原因,event.start 在内部是 8AM (UTC) / 3AM (EST)。
但由于某种原因,django.utils.timezone.now() 给了我正确的时间凌晨 2 点,而不是凌晨 3 点。我的操作系统系统时间也给出了正确的时间,凌晨 2 点。我想在凌晨 2 点安排一个工作,但它最终被安排在凌晨 3 点,因为 event.start 出于某种原因被设置为凌晨 3 点!
我想保持 UTC 时间。我该如何处理?
【问题讨论】:
-
提供更多信息会有所帮助 - 列的确切类型是什么,您是否将 TIME_ZONE 设置为正确的位置?
-
@Jindra 好的,我添加了该信息。希望对解决问题有所帮助
标签: python django postgresql datetime dst