jueves, 26 de diciembre de 2013

Configuración de soporte para UTC en Windows

Configuración de soporte para UTC (Universal Time Clock, o bien "reloj de hora universal") en Windows 7

El procedimiento fue probado y concluyó exitosamente en Windows 7, pero es de esperar que también funcione bien en Windows Vista y Windows 8.
Si alguien ha hecho la prueba (aún con Windows XP), por favor, deje su comentario aquí. Eso enriquecerá la información y ayudara a mayor cantidad de gente a solucionar este problema.


El artículo que sigue fue tomado del siguiente post (http://crashmag.net/configuring-windows-7-support-for-utc-bios-time#comment-20609) y pertenece al usuario crashmag (http://crashmag.net/author/crashmag).

La traducción y los abundantes retoques necesarios son de mi autoría.





Windows 7 no soporta de forma nativa la hora UTC, lo cual resulta en un verdadero problema si también se está ejecutando en la misma computadora un sistema GNU/Linux u OSX.
De cualquier modo, la BIOS de su ordenador, puede llegar a mantener la hora UTC de forma correcta.
El "Tiempo Universal" se puede convertir de forma inequívoca en hora local. Lo contrario no es cierto, es decir, una hora local no se puede convertir de manera confiable en tiempo universal.

Esto es debido al horario de verano o a períodos implementados en muchos países de forma local y no universalizada. Al final de ese período de desplazamiento, los relojes de tiempo local tienen que ser retrasados por lo general una hora, por lo tanto, se repite un período de 60 minutos en la escala de tiempo local, produciéndose así sobresaltos en la línea de tiempo que solamente pueden ser ajustados "a mano".
El horario de verano hace que sea necesario un reajuste del RTC (Real Time Clock, o bien "reloj de tiempo real") dos veces por año.

Sin embargo, no existe actualmente ningún convenio de funcionamiento interno ni acuerdo de ningún tipo entre las empresas productoras de hardware, que incluya algún tipo de estandarización para la CMOS RAM ("BIOS") sobre este tema, debido a que no puede saberse si el ajuste del reloj interno del PC pudo haber sido realizado por el usuario o no, o por el Sistema Operativo y sin ser notado por el usuario, no siendo posible la certeza absoluta acerca de estos cambios ni transparencia alguna que pueda universalizarse de manera sencilla y masiva aún.
Como resultado, los sistemas operativos pueden "confundirse", aplicando correcciones en múltiples ocasiones (en cada arranque del PC, por ejemplo). Una posible solución es grabar en algún lugar en el disco duro la información correspondiente a si el cambio de horario de verano ya se ha realizado este año o no, y cuándo, pero esto no funciona para los usuarios que tienen la obligación de ejecutar varias versiones de sistemas operativos en diferentes particiones del disco duro y en el mismo equipo, con multiplicidad de sistemas de archivos y formato de disco duro (fat, ntfs, ext, hfs+, ...). El RTC es compartido por varios sistemas operativos que pueden arrancar alternativamente, pero que a su vez no tienen acceso a los archivos de configuración de los demás.
Un problema similar se produce cuando el sistema operativo se inicia desde un medio de almacenamiento externo (pen drive, disco compacto, etc.) o cuando se utiliza un emulador o máquina virtual (virtualización).
En Sistemas Operativos GNU/Linux, este problema no sucede. Estos Sistemas son capaces de gestionar esta situación de manera efectiva y transparente, no ocurriendo lo mismo con los Sistemas de Microsoft. Para activar el soporte UTC en Windows entonces, deberás hacer lo siguiente.

Copia el siguiente texto, tal como está, en un documento de texto (bloc de notas) y guárdalo con el nombre utc.reg. Antes que nada, deberás desactivar la opción "Ocultar las extensiones de archivo para tipos de archivo conocidos", puesto que, de no ser así, no podrás convertir el archivo generado ".txt" (archivo de texto) en ".reg" (archivo de registro).

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation] “RealTimeIsUniversal”=dword:00000001

Ejecútalo, reinicia el sistema... ¡y ya está!

NOTA 1: si no sabes cómo realizar el cambio de extensión de un archivo, aquí tienes la explicación, de la mano de la misma gente de Microsoft:

http://windows.microsoft.com/es-419/windows/show-hide-file-name-extensions#show-hide-file-name-extensions=windows-vista

NOTA 2: si al completar todos los pasos (incluido el reinicio) esto no funcionó, fíjate la nota que agregué al final del post, porque definitivamente te solucionará el problema si todo lo de arriba (método más recomendable) no surtió el efecto esperado.


Se agradece al autor original del post. Los datos de autoría y las atribuciones correspondientes, figuran al inicio del mismo.



Si todo lo anteriormente descrito no te funcionó, prueba con alguna de las 2 soluciones que te dejo aquí:

Solución (1) del estilo "MacGyver", de "viveza criolla" o de "sentido común":
I - Clic derecho sobre el reloj de Windows (el que está ubicado abajo, a la derecha, en la barra de tareas),
II - Selecciona "Ajustar fecha y hora",
III - Se abrirá una pequeña ventana: en ella, pulsa el botón "Cambiar zona horaria...",

IV - Elige la zona horaria que equilibre tu problema horario, sin importar si coincide con la tuya o no.
Hacia el Oeste, disminuye, y hacia el Este, aumenta. Aquí tienes algunos ejemplos:

Si estás en Uruguay o Argentina, la zona horaria es "-3". Suponiendo que tu reloj adelanta 3 horas, debes correr la zona horaria 3 horas hacia el Oeste, para que quede ajustada la hora en tu país. Por lo tanto, elige "América Central (-6)". Ese "-6", hace que el "-3" de Uruguay" y el desfasaje de 3 horas hacia adelante quede nivelado a cero.
Si esto no se comprende correctamente, puedes ir adelantando o retrasando la zona horaria hasta que coincida con la tuya.



Solución (2) del estilo "si no puedes vencer a tu enemigo, únete a él":

a) Averigua cómo se quita el UTC en tu Sistema GNU/Linux, para dejar el reloj establecido en "localtime", o bien "hora local".
b) Establece la hora "a mano" en tu Sistema GNU/Linux.
c) Reinicia la máquina y establece la hora "a mano" en tu Sistema Microsoft.


Así se hace en OpenSuse: se entra a YaST, se accede al reloj desde el apartado "Sistema" (icono "fecha y hora"), y se desmarca la casilla "Reloj de hardware establecido en UTC".



¡Saludos!