Windows 8/8.1 system clock changing randomly while powered on and in use
Solution 1:
Problem solved. The fact that the issue occurred on two platforms was simply an annoying coincidence.
PC:
The RTC (Real Time Clock) crashed and/or stopped ticking. Yes - I repeat: the BIOS aka RTC clock on my essentially brand new ASUS Z87 Deluxe motherboard stopped ticking after swapping SSDs and installing Windows 8.1 on it. When I went into the BIOS to check up on the time, I thought it was strange that the seconds weren't updating. That was definitely not normal behaviour, but it explains absolutely everything. I trawled the Internet and found this forum thread which shows someone with the exact same issue, but whose build is different altogether. I tried resetting my BIOS to factory defaults but the issue remained, and I already had the latest version. Nonetheless I decided to remove the CMOS battery and wait a minute or two before putting it back in, and guess what, the RTC started ticking again. Great. I didn't even think that such a problem could exist, but it did. You really do learn something new every day.
Netbook:
Even though the CMOS battery was replaced several times, it was not replaced correctly; the netbook needed one of these special kinds as the motherboard doesn't have a direct slot for the CR2032 CMOS battery. However they were nowhere to be found and those that I did find had the wrong kind of adapter, so replacing the battery meant cutting the old battery off, sticking the wires onto each plate of the new battery and taping it all together which was not adequate to keep an electrical connection. But, after realising this was the issue, using a small bit of very strong duct tape did the trick.
Lessons learned:
- It can't be the CMOS battery. Yes it can.
- There is no way my RTC clock stopped. Yes there is.
- Thus, if the clock is suddenly wrong and never otherwise is, it's probably related to the BIOS.
- Windows periodically synchronises the soft clock with the RTC clock; i.e., it sets the value of the soft clock to that of the RTC. Why it does this does not quite make sense to me, but the proof is in the logs above and is the reason for the apparently random changes in time during normal operation.