我一直想知道这两个属性如何工作的原理到底是什么。我知道第二个是通用的,基本上不涉及时区,但是有人可以详细解释它们是如何工作的,以及在什么情况下应该使用哪个?
DateTime.UtcNow告诉您日期和时间,因为它在协调世界时,也称为格林威治标准时区 - 基本上就像您在英国伦敦时一样,但不是在夏天。DateTime.Now给出日期和时间,就像您当前区域设置中的某个人看到的那样。
我建议DateTime.Now您在向人类显示日期时使用 - 这样他们就会对他们看到的价值感到满意 - 他们可以轻松地将其与他们在手表或时钟上看到的内容进行比较。当您想要存储日期或将它们用于以后的计算时使用DateTime.UtcNow(在客户端- 服务器模型中),您的计算不会被来自服务器或彼此不同时区的客户端混淆。
DateTime.Now
DateTime.UtcNow