sen*_*ett 7 language-agnostic datetime utc
我们的应用程序目前使用当地时间而不是UTC.我知道使用UTC非常重要,但不能为我的生活记住原因.
假设DateTimes存储有偏移量,当将本地时间与UTC时间进行比较时,或者与具有不同时区的其他时间进行比较时,任何值得使用的库肯定会知道不同的时区并将两个对象变为可以是相比?
只要偏移量与DateTime一起传递(比如说它将使用对象而不是字符串),我不明白为什么它很重要.我为什么要处理2014-09-01T13:44:13+00:00而不是2014-09-01T14:44:13+01:00?实际上,存储为UTC会丢失偏移信息(声明时间的本地时间).
我在这里错过了什么?
上下文:我们有限制,一个一个样式的错误,我想'啊哈:把所有的东西都转移到UTC'然后意识到我只是通过代码转换一堆DateTime对象来使用UTC时区这让我感到很浪费时间.
我将时间存储为 UTC 有两个原因。
首先,对于我工作的某些应用程序的全球用户,每个用户的本地时间都不同,因此输入数据的用户的本地时间可能不是稍后查看数据的用户的本地时间。
第二,时区变化。他们受制于政府的异想天开。今天的 UTC +5 可能是明天的 UTC +6 只是因为某些政府这么说,然后会使本地时间 + 偏移量与存储的不同。你总是可以找出正确的当地时间,但我只是认为它不仅仅是将 UTC 转换为本地时间。
这些是我所知道的使用 UTC 的最佳原因,但我确信还有其他我没有想到的原因。
您的用例允许存储具有偏移量的本地时间.IMO不需要以UTC格式存储,因为您始终可以将时间点转换为任何其他本地时间.事实上,它为您提供了更多,因为您还有关于当地时间的信息.
从技术上讲,将日期分别存储为UTC和偏移量是有利的:您可以对字符串进行排序,这样可以在例如DBS中提供优势,它不支持具有正确偏移的日期字段(例如MySQL).
如果您考虑不允许存储偏移量的系统,则参与者必须就共同的时区达成一致.UTC似乎是一个非常稳定的候选人,具有良好的时区翻译支持.
这方面的一个示例是Exif您只能存储没有任何时区信息的本地日期.另一个例子是多OS计算机中的硬件时钟.如果演员不同意共同的时区,你会感到头疼(Linux和Windows在DST切换期间会变得很有趣).
| 归档时间: |
|
| 查看次数: |
5893 次 |
| 最近记录: |