Windows 10 always showing wrong time

I had a similar problem on Dual Boot PC (Win 10 & Ubuntu 18.04). The issue was that Windows tries to keep hardware clock (a.k.a BIOS clock) at the local time, but Ubuntu tries to keep it at the UTC time. So the OSs fight each other, changing the hardware clock time each time they boot.

The solution is to either make Ubuntu use local time, or make Windows use UTC time. If you use Ubuntu 15.04 or newer, then I recommend the first option, because it's as simple as executing a single command:

timedatectl set-local-rtc 1