Time keeps changing between BIOS/WIndows 7/Ubuntu 14.04 [duplicate]

Solution 1:

As the amount of minutes is always set correctly, it is probably not battery, but the timezone issue. Windows tries to keep HW clock at the local time. Linux tries to keep them at the UTC.

Your experiment with hwclock --localtime was almost right, but hwclock changes it only for the current boot. You want to save this information permanently.

Set UTC=no in /etc/default/rcS to keep it persistent over the time.

see https://help.ubuntu.com/community/UbuntuTime#Make_Linux_use_.27Local.27_time for more details

After this configured properly, you should again enable automatic sync in both Linux and Windows.