保存为无DST的UTC时间(瞬间)

问题描述 投票:1回答:1

我试图弄清楚在UTC中将时间存储在数据库中并处理DST更改的逻辑时遇到问题。

我在数据库中有TimeStart和TimeEnd,指示工作时间。如果我节省了DST的时间,而没有节省DST的时间,则会出现问题。如果我在10月15日保存09:00-17:00,则结果为07:00-15:00(UTC),但是如果我现在在非DST时添加营业时间,则结果为08:00-16:00(UTC)。我以为,考虑到夏令时,将瞬间转换为UTC会得到一致的结果,但是我错了。

在前端/后端上处理该问题的最佳解决方案是什么。我应该减去增加的DST时间吗?因为使用矩来处理到UTC的转换无济于事,因为它仍然会产生1个小时的时差(现在,我怀疑到目前为止我对UTC时间所做的一切,因为可能由于此问题而出现问题)。

谢谢

datetime momentjs dst
1个回答
1
投票

由于我没有必要的声誉来简单地发表评论,所以我想我会写一个实际的答案。 (免责声明:我实际上并未使用moment.js)

我建议您始终将时间以UTC格式存储在数据库中。在前端显示/存储时应进行转换。

有关如何处理DST的更多信息,我发现了这个很好的问题,答案很多。您应该能够将此处提到的很多内容应用于任何堆栈:Daylight saving time and time zone best practices

鉴于问题的细节,很难告诉您错误在哪里,您仍然会得到错误的值。

© www.soinside.com 2019 - 2024. All rights reserved.