如何确保服务器时间是实时的?

时间:2019-12-06 16:16:14

标签: c# asp.net-core time

我正在制作一个高度依赖服务器时间的Booking Web App。 我想确保使用System.DateTime.Now进入我的应用的时间是实时的。

服务器时间或UTC时区是否可能以不想要的方式发生变化?

2 个答案:

答案 0 :(得分:2)

您可以从字面上将服务器时间设置为GMT / UTC。当然,这不会阻止其他人稍后对其进行更改,并在不知情的情况下使您的应用无聊。

通常,您永远不要使用DateTime.Now。老实说,如果时间对您来说很重要,那么您甚至都不应该使用DateTimeDateTimeOffset在几乎所有情况下都更合适,特别是您应该使用DateTimeOffset.UtcNow。不过,DateTimeOffset.Now的问题至少比DateTime.Now少,因为至少服务器的偏移量将在计算中发挥作用。

如果您需要精确的时间处理,则应使用Jon Skeet维护的Noda Time库,特别是因为.NET CLR日期/时间处理都不是100%准确的

答案 1 :(得分:1)

  

服务器时间或UTC时区是否有可能在   不需要的方式?

是的,有可能。一种解决方案是通过从NTP服务器获取准确时间来定期检查服务器时间。

示例: How to Query an NTP Server using C#?

您可以在应用程序中列出NTP服务器池,以实现一点冗余。