Windows 7: System clock 2 hours behind on every boot

Solution 1:

Click on the clock and choose "Change date and time settings..."

Click the "Internet Time" tab. Is it set up to synchronize the time with time.windows.com? If it is, try unchecking that box, saving the settings, and rebooting to see if that fixes your problem. If it isn't checked already, try checking it and making sure it is set to time.windows.com.

Here is an article that may explain the problem:
Windows/Ubuntu Dual Boot-Setting time in one changes time in the other

The BIOS is the base clock and keeps time when the OS is off.

He boots into Windows, and the time is out. He either fixes it by hand or via time server, and Windows helpfully 'fixes' the time on the hardware clock on the motherboard in BIOS. Then he reboots into Ubuntu, and it picks up the time from the motherboard and sets the OS to that time. It's out by 4 hours because Linux expects the hardware clock to be UTC rather than EDT. In Ubuntu he either fixes the time manually or by ntp time server, then when he shuts down Linux helpfully 'fixes' the hardware clock. And around we go...

Note you don't get this when you run one or the other virtualized - just when you dual boot.

Does that explain it better?

So it seems that for dual booting Windows and Ubuntu, both need absolutely to use a time server.

See this for Windows : Dealing With Windows Vista Time Sync Problems.

Solution 2:

A quick and simple answer that worked for me:

Create a file time.bat with the following contents:

%windir%\system32\sc.exe start w32time task_started

Put the bat file in your startup, then reboot. After small delay (from 30 seconds to 1 minute) system time will be corrected.