django 中的日期时间错误
Datetime is wrong in django
我在东部标准时间 (EST)。夏令时从 2 周前开始,时钟向前拨了 1 小时(所以下午 5 点变成了下午 6 点)。我有 USE_TZ = True
。 TIME_ZONE 设置为“EST”。
在我的应用程序中,我有一个提交日期的表单,例如凌晨 2 点。该日期仍然是凌晨 2 点,作为 DateTime 字段保存在模型中:event.start = date
。我有一个呈现日期的视图,页面正确显示凌晨 2 点。
问题:event.start
评估为凌晨 3 点(美国东部标准时间)/早上 8 点(UTC),1 小时后它应该是什么!输入是凌晨 2 点,它甚至在模板中呈现凌晨 2 点,但由于某些内部原因 event.start
是上午 8 点(UTC)/凌晨 3 点(美国东部标准时间)。
但出于某种原因 django.utils.timezone.now()
给我正确的时间是凌晨 2 点,而不是凌晨 3 点。我的 OS 系统时间也给出了正确的时间,凌晨 2 点。我想安排凌晨 2 点的工作,但最终安排在凌晨 3 点,因为 event.start
由于某种原因被设置为凌晨 3 点!
我想用 UTC 时间。我该如何处理?
Eastern Standard Time
没有夏令时,与 UTC 硬偏移。当有夏令时时,从 Eastern Standard Time
切换到 Eastern Daylight Time
(EDT)。
更多信息:https://www.timeanddate.com/time/zones/est
通常使用 Olson 标识符是更好的解决方案。它们是 IANA 时区数据库中使用的标识符。它们是基于位置的,因此当位置更改时区(包括夏令时)时,一切仍然有效。
更改 EST <-> EDT 的地方示例:
America/New_York
尝试将 TIME_ZONE
从 EST
更改为您所需位置的 Olson 标识符。
我在东部标准时间 (EST)。夏令时从 2 周前开始,时钟向前拨了 1 小时(所以下午 5 点变成了下午 6 点)。我有 USE_TZ = True
。 TIME_ZONE 设置为“EST”。
在我的应用程序中,我有一个提交日期的表单,例如凌晨 2 点。该日期仍然是凌晨 2 点,作为 DateTime 字段保存在模型中:event.start = date
。我有一个呈现日期的视图,页面正确显示凌晨 2 点。
问题:event.start
评估为凌晨 3 点(美国东部标准时间)/早上 8 点(UTC),1 小时后它应该是什么!输入是凌晨 2 点,它甚至在模板中呈现凌晨 2 点,但由于某些内部原因 event.start
是上午 8 点(UTC)/凌晨 3 点(美国东部标准时间)。
但出于某种原因 django.utils.timezone.now()
给我正确的时间是凌晨 2 点,而不是凌晨 3 点。我的 OS 系统时间也给出了正确的时间,凌晨 2 点。我想安排凌晨 2 点的工作,但最终安排在凌晨 3 点,因为 event.start
由于某种原因被设置为凌晨 3 点!
我想用 UTC 时间。我该如何处理?
Eastern Standard Time
没有夏令时,与 UTC 硬偏移。当有夏令时时,从 Eastern Standard Time
切换到 Eastern Daylight Time
(EDT)。
更多信息:https://www.timeanddate.com/time/zones/est
通常使用 Olson 标识符是更好的解决方案。它们是 IANA 时区数据库中使用的标识符。它们是基于位置的,因此当位置更改时区(包括夏令时)时,一切仍然有效。
更改 EST <-> EDT 的地方示例:
America/New_York
尝试将 TIME_ZONE
从 EST
更改为您所需位置的 Olson 标识符。