Django中的日期时间错误

我在东部标准时间(EST)。夏令时开始于2周前,时钟向前调1小时(因此5PM变成6PM)。我有USE_TZ = True。 TIME_ZONE设置为“ EST”。

在我的应用中,我有一个提交日期的表单,例如2AM。该日期仍是凌晨2点,已保存为模型中的DateTime字段:event.start = date。我有一个呈现日期的视图,并且页面正确显示了2AM。

问题:event.start的计算结果为3AM(EST)/ 8AM(UTC),比预期的要晚1个小时!输入为2AM,甚至在模板中呈现2AM,但由于某种原因,event.start内部为8AM(UTC)/ 3AM(EST)。

但是由于某些原因,django.utils.timezone.now()给我正确的时间是2AM,而不是3AM。我的OS系统时间也给出了正确的时间2AM。我想将工作安排在2AM,但是最终却因为3 event.start由于某种原因被设置为3AM!

我想保持UTC时间。我该如何处理?

beijiao_1608 回答:Django中的日期时间错误

Eastern Standard Time没有夏令时,很难与UTC抵消。如果有夏令时,则从Eastern Standard Time切换到Eastern Daylight Time(EDT)。

更多信息:https://www.timeanddate.com/time/zones/est

通常使用Olson标识符是更好的解决方案。它们是IANA时区数据库中使用的标识符。它们基于位置,因此当位置更改TimeZone(包括夏时制)时,一切仍然有效。

更改EST的地方示例 EDT:

America/New_York

尝试将TIME_ZONEEST更改为所需位置的Olson标识符。

本文链接:https://www.f2er.com/2577369.html

大家都在问