Jam*_*mes 2 c# timezone datetime utc datetimeoffset
从我下面最后一个问题这@乔恩飞碟双向给了我很多的帮助与(再次感谢!)
我现在想知道当它们被转换回本地日期/时间时,如何安全地处理以UTC格式存储的日期/时间.
正如乔恩在我的上一个问题中DateTimeOffset表示,使用时间代表了一个瞬间,并且没有办法预测一分钟之后当地时间会说什么.我需要能够根据这些日期/时间进行计算.
那么我如何确保何时从数据库中提取日期,将它们转换为本地日期/时间并对它们进行具体计算它们是否准确?
脚本
我的申请记录通过电子邮件发送的信息.收到电子邮件的日期/时间记录为提交时间.电子邮件是从交换中提取的.
我需要知道的是:
1)如果这些电子邮件来自不同的国家/地区,我是否只是将Recieved电子邮件的日期/时间转换为UTC格式并存储?例如Email.Received.ToUniversalTime()
不,你不能这么认为.UTC时间是完全线性的,您可以安全地对它们进行计算.一旦你将它转换为当地时间,它就不再是完全线性的.
当夏令时发生变化时,当地时间会有重叠或间隙.如果您进行的计算跨越夏令时变化,则结果将关闭一小时(如果时间变化多少,这是最常见的).
如果在将DateTime/DateTimeOffset值转换为本地时间之前进行计算,则结果将始终正确.但请注意,将值转换为本地DateTime值可能会使其不明确,如果值在夏令时变化时恰好落在重叠内,则无法判断它是第一次还是第二次确切时间发生在当天.
| 归档时间: |
|
| 查看次数: |
10164 次 |
| 最近记录: |