It is important to have the Windows Time Service on a DC on the network pointing to an external NTP source to keep time in sync.
There is an article here which tells you how:
I’ve condensed it here to a reg file you can create and run.
Copy the following code into a text document, name it time.reg and run it on a DC.
Then restart the time service with the command:
net stop w32time && net start w32time
Give it a few seconds and the clock should correct itself.
If it is a virtual machine make sure that the Hyper Visor isn’t pushing time out to it, as the server will take that as priority. For example on Hyper-V go to the VM Settings, and Integration Services and un-tick Time synchronization.
The registry file
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer]
“Enabled”=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters]
“NtpServer”=”0.europe.pool.ntp.org,0x1 1.europe.pool.ntp.org”
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient\SpecialPollInterval]
“SpecialPollInterval”=dword:900
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config]
“MaxPosPhaseCorrection”=dword:00000e10
“MaxNegativePhaseCorrection”=dword:00000e10