Aprendemos primero que es lo que pasa cuando teniendo dos sistemas instalados en el mismo equipo, se cambian la hora entre ellos.
El problema se origina cuando el sistema operativo establece la hora en la BIOS.
Windows ajusta la hora desde Internet según nuestra ubicación y establece esta misma hora en la BIOS del equipo.
Por otro lado en Linux se ajusta la hora desde Internet y establece en la BIOS la hora correspondiente a Greenwich (UTC) y luego calcula la diferencia con la que elegimos en la configuración del sistema. Muestra así la hora correspondiente.
Como puedes ver Windows quiere ir siempre por libre, sin respetar los estándares... Así que la correcta solución a este problema será obligar a Windows usar UTC al igual que Linux.
Solución:
Iniciamos Windows y ejecutamos regedit como Administrador.
Una vez en regedit vamos a la siguiente carpeta
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
Con el botón derecho creamos un nuevo valor en el registro.
Si nuestro sistema es de 32 bits, seleccionamos DWORD
Si nuestro sistema es de 64 bits, seleccionamos QWORD
Nombramos el nuevo valor como RealTimeIsUniversal
Y con doble click establecemos el valor Hexadecimal en 1
Tal como se muestra en la imagen (mi sistema es 64 bits, por eso usé QWORD)
Aceptamos y quedará así:
Ya estará todo listo.
Solo quedará reiniciar en Windows y dejar un momento al menos que se establezcan los datos, el reloj, etc.
Una vez correcta la hora, iniciamos Linux y en un terminal ejecutamos
timedatectl status
Y la hora mostrada en "Universal time" y en "RTC time" debe de ser la misma.
Si no lo fuera deberemos forzar a sincronizar la hora desde windows por internet para que se ponga la hora correcta y volver a mirar con el comando anterior que ya sea "Universal time" y en "RTC time" igual.
Saludos!!