I'm making a Booking Web App that is highly depend on server time.
I want to be sure the time i get in my app using System.DateTime.Now
would be real time.
Is it possible that somehow server time or UTC Time Zone changes in an unwanted manner?
I'm making a Booking Web App that is highly depend on server time.
I want to be sure the time i get in my app using System.DateTime.Now
would be real time.
Is it possible that somehow server time or UTC Time Zone changes in an unwanted manner?
You can literally set the server time to GMT/UTC. Of course, that doesn't stop someone else from changing it later and borking your app without knowing.
In general, you should not use DateTime.Now
ever. Honestly, you shouldn't even use DateTime
, if time is of importance to you. DateTimeOffset
is more appropriate in almost all cases, and in particular you should use DateTimeOffset.UtcNow
. Though, you'll at least have less problems with DateTimeOffset.Now
than DateTime.Now
, because at least the server's offset will come into play in calculations.
If you need precise time handling, then you should use Noda Time, a library maintained by Jon Skeet, specifically because none of the .NET CLR date/time handling is 100% accurate.
Is it possible that somehow server time or UTC Time Zone changes in an unwanted manner?
Yes, it is possible. A solution is to periodically check the server time by getting the exact time from a NTP server.
Example: How to Query an NTP Server using C#?
You can list a pool of NTP servers in you application in order to have a bit of redundancy.