【发布时间】:2011-02-08 12:01:55
【问题描述】:
根据我的last question @Jon Skeet 给了我很多帮助(再次感谢!)
我现在想知道当日期/时间转换回本地日期/时间时,如何安全地使用存储为 UTC 的日期/时间。
正如 Jon 在我上一个问题中指出的那样,使用 DateTimeOffset 表示时间即时,无法预测一分钟后的当地时间。我需要能够根据这些日期/时间进行计算。
那么,当我从数据库中提取日期、将它们转换为本地日期/时间并对它们进行特定计算时,我如何确保它们是准确的?
场景
我的申请记录了通过电子邮件发送的信息。收到电子邮件的日期/时间记录为提交时间。电子邮件是从 Exchange 中提取的。
我需要知道的是:
1) 如果这些电子邮件来自不同的国家,我是否只需将电子邮件的 Recieved 日期/时间转换为 UTC 格式并存储它?例如Email.Received.ToUniversalTime()
【问题讨论】:
-
在将结果转换为本地时间之前,您不能在 UTC 日期/时间上执行计算吗?
-
他们是否在本地有关系吗?如果 DateTimeOffset 只给我一个瞬间,那么计算是否准确?
-
你真的错过了 UTC 的重点。在世界任何地方都是一样的。 不要转换。
-
@Hans:我的意思是——假设我在英国有一个日期/时间,这个日期/时间在不同的时区是不一样的。所以说它是针对澳大利亚的,我需要将 UTC 时间转换为当地时间以便对其进行计算(因为英国时间的日期为
15/04/2010 18:00会导致类似于16/04/2010 04:00澳大利亚时间)
标签: c# datetime timezone utc datetimeoffset