Had this issue on my laptop and regular PC (both dual boot Windows 10 and Xubuntu) - the time was always 1 hour behind.
Before I give my solution, just to be clear;
- Yes, BIOS showed the correct time
- No, the BIOS battery was not empty
- Yes, tried both with Daylight savings on and off
- Yes, my time zone was set correctly
- Yes, I did try different time zones as well
- No, I did not mess up my region settings
- Yes, I even changed time manually - but it would switch back nevertheless
What worked for me, was the following; change the "Internet time" settings to time.nist.gov.
- Go to Control Panel
- Go to Clock, language and region
- Select "Set the time and date"
- In the pop-up, go to tab "Internet time"
- Select "Change settings"
- Select the server time.nist.gov.
Time is now shown correctly again, even after restart.
If you are still having issues with time after these steps verify the Windows Time Service is running (w32Time)
- Open the Start menu and type "Services"
- From The list of options available select "Services"
- Click on any service in the list and then type "win" to be taken to the services with a name beginning "Windows"
- Find the "Windows Time" service and right click on it and open properties.
- Ensure the "Startup Type" is set to "Automatic" and then make sure you "Start" the service.
This should ensure that if you are using NTP (Internet Time) then you should be able to sync your clock on startup.