The problem is that Linux uses UTC and Windows uses the local time from the RTC.
This results in very annoying issues when booting between the two because the clock is set based on the different standards once you boot.
The easiest solution is to change your Linux to use RTC this way:
timedatectl set-local-rtc 1 --adjust-system-clock
To change it back to UTC:
timedatectl set-local-rtc 0 --adjust-system-clock