My computer's time keeps getting set incorrectly. My time zone is set correctly, and if I "Update now" to synchronize with an internet time server (time-a.nist.gov), the time gets set correctly. It seems that some other program runs that sets the time incorrectly.
The changes don't always follow the same pattern, but the when the time is set incorrectly, it is always one hour earlier than the correct time:
I've created a batch file to check the time every 10 seconds; it detects a change precisely every hour. I immediately reset to the correct time; an hour later, it changes again. This will continue for hours (until I hibernate or shut down, I think; after starting up again, it sometimes does, and sometime does not, follow this pattern).
Sometimes the time is correct when I hibernate the system, then is incorrect when I awaken it.
I dual boot Linux, but I haven't run Linux in weeks. Also, my time zone is UTC-8; if this were the dual-boot problem, I would expect the incorrect time to be wrong by eight hours, not by one hour.
Any ideas? Is there a way to detect when a system call changes the clock? Once the one-hour pattern starts, it is predictable when the next change will happen, so I could monitor at that time, if I knew what to monitor.
To clarify: while Windows is running, the system time gets changed to the wrong time. It has nothing to do with Linux, BIOS, or CMOS.