【发布时间】:2012-08-21 19:52:24
【问题描述】:
如果我尝试:
DateTime.Now.Subtract(DateTime.UtcNow)
我希望结果非常接近于零。但这不是,而是时区差异,在我的情况下是-4小时。有一个 .Kind - DateTime 知道时区不同。为什么它不为我跟踪这个?有没有正确使用 Kind 的 Subtract 风格?
(作为参考,可以在https://stackoverflow.com/a/3229429/237091 看到每个输出的一个很好的概要)
【问题讨论】:
-
DateTime.Now返回当前系统DateTime,DateTime.UtcNow还将时区转换应用于UTC。DateTime没有时区的内部表示。也许你需要DateTimeOffset。 -
如果你在冰岛雷克雅未克运行它,你会得到零
-
欢迎来到
DateTime的世界。 “种类”被忽略。在 .NET 1 中它甚至不存在,现在让事情变得合乎逻辑已经太晚了。 -
@exacerbatedexpert:不,对局部值进行各种算术运算是完全合理的。在许多情况下,我认为这比在 UTC 中进行更明智。 这里显示的算术没有意义,但其他算术当然可以。