为什么要使用UTC?

森尼特

我们的应用程序当前使用当地时间而不是UTC。我知道使用UTC很重要,但是我一生都无法记住原因。

假设将DateTimes存储为偏移量,则在将本地时间与UTC时间进行比较时,或与具有不同时区的另一个时间进行比较时,无疑任何值得使用的库都将知道不同的时区并将这两个对象变异为可以比较?

只要偏移量与DateTime一起传递(例如,它将使用对象而不是字符串),我就看不出它为什么重要。我为什么要处理2014-09-01T13:44:13+00:00而不是2014-09-01T14:44:13+01:00呢?实际上,将其存储为UTC会丢失偏移量信息(声明时间的本地时间)。

我在这里想念什么?

上下文:我们遇到了一个单一的样式错误,并且我以为“啊哈:将所有内容都移到UTC”,但后来我意识到我只是在通过代码转换一堆DateTime对象以使用UTC时区,这让我感到很浪费时间。

马库斯·马尔库施(Markus Malkusch)

您的用例允许存储带有偏移量的本地时间。IMO无需存储在UTC中,因为您始终可以将时间点转换为任何其他本地时间。实际上,它还可以为您提供更多信息,因为您还可以获得有关当地时间的信息。

从技术上讲,将日期分别存储为UTC和偏移量有一个优势:您可以对字符串进行排序,这在DBS中有一个优势,例如DBS不支持带偏移量的日期字段(例如MySQL)。

如果您考虑不允许存储偏移量的系统,则参与者必须在一个公共时区上达成一致。UTC似乎是一个非常稳定的候选人,并具有良好的时区翻译支持。

例如Exif,您只能存储本地日期而没有任何时区信息。另一个示例是多操作系统计算机中的硬件时钟。如果演员不同意相同的时区,您会头疼(Linux和Windows在DST切换期间会变得很有趣)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章