我一直想知道这两个属性的工作原理到底是什么。我知道第二个是通用的,基本上不涉及时区,但谁能详细解释一下它们是如何工作的,以及在什么情况下应该使用哪一个?
发布于 2008-09-15 11:02:43
DateTime.UtcNow会告诉您协调世界时的日期和时间,这也被称为格林威治标准时区-基本上就像您在英国伦敦时一样,但不是在夏季。DateTime.Now给出的日期和时间与您当前区域设置中的人看到的日期和时间相同。
我建议在向人们显示日期时使用DateTime.Now
,这样他们就可以很容易地将看到的值与他们在手表或时钟上看到的值进行比较。如果您希望存储日期或将其用于以后的计算(在客户端-服务器模型中),请使用DateTime.UtcNow
,这样您的计算就不会被位于不同时区的客户端与您的服务器或彼此之间的客户端混淆。
发布于 2009-04-18 00:12:30
除了上面提到的几点: DateTime结构还包含一个名为Kind的鲜为人知的字段(至少,我很长一段时间都不知道它)。它基本上只是一个指示时间是本地时间还是UTC时间的标志;它不指定本地时间与UTC的实际偏移量。除了它表明了构建结构的意图之外,它还影响了方法ToUniversalTime()和ToLocalTime()的工作方式。
发布于 2011-09-15 21:11:07
有点晚了,但我发现这两个链接(4guysfrom little )非常有用:
Using Coordinated Universal Time (UTC) to Store Date/Time Values
Advice for Storing and Displaying Dates and Times Across Different Time Zones
https://stackoverflow.com/questions/62151
复制相似问题