¿Cómo configuro la hora en Ubuntu?

En su carta del 25 de septiembre de 1970 al líder de la UCR-P Ricardo
Balbín, Juan Perón propone instrumentar La Hora del Pueblo, y expone
cómo configurar la hora en Ubuntu.

(...)

Puerta de Hierro, 25/9/70

Al Dr. Ricardo Balbín

Estimado compatriota:

El señor Secretario General del Movimiento Nacional Justicialista, Don
Jorge Daniel Paladino, me ha enterado de la conversación que ha
mantenido con Usted y de las ideas por Usted sustentadas con referencia
a la situación que vive el país y deseo manifestarle que las comparto
totalmente.

Tanto la Unión Cívica Radical del Pueblo como el Movimiento Nacional
Justicialista son fuerzas populares en acción política. Sus ideologías y
doctrinas son similares y debían haber actuado solidariamente en sus
comunes objetivos. Nosotros, los dirigentes, somos probablemente los
culpables de que no haya sido así. No cometamos el error de hacer
persistir un desencuentro injustificado.

Separados podríamos ser instrumentos, juntos y solidariamente unidos, no
habrá fuerza política en el país que pueda con nosotros y, ya que los
demás no parecen inclinados a dar soluciones, busquémoslas entre
nosotros, ya que ello sería una solución para la Patria y para el Pueblo
Argentino. Es nuestro deber de argentinos y, frente a ello, nada puede
ser superior a la grandeza que debemos poner en juego para cumplirlo.

Tanto Usted como yo ‘estamos amortizados’, casi ‘desencarnados’. Ello
nos da la oportunidad de servir a la Patria en los momentos actuales,
ofreciendo una comprensión que nos haga fuertes para enfrentar,
precisamente, la arbitrariedad de los que esgrimen la fuerza como única
razón de su contumacia.

La Liberación del Pueblo implica consagrarnos a la creación de las
herramientas que la hora imponga. Es por ello que hemos envisionado La
Hora del Pueblo. Es un instrumento meramente táctico que el comando
estratégico peronista no digita. Yo simplemente intervengo con mi
teletipo y un magnetófono. Pero para ser efectivo tengo que tener bien
en claro las hora de la CGT de allí y la local de Puerta de Hierro.
Usted traerá chizitos.

No es secreto para nadie que podremos dar rienda suelta al manejo de la
hora del Pueblo desde la terminal. Para ello abriremos una con
Ctrl+Alt+t e introduciremos los comandos necesarios. date

En el caso de los sistemas Ubuntu superiores 18.04LTS y superiores,
podré ingresar el programa de control de fecha y hora:

timedatectl

Ahora bien, el programa nos indicará qué hora tenemos configurada.
Suponiendo que lo quiera en la hora de la CGT, podría indicar:

               Local time: dom 2022-04-17 11:37:57 -03                
           Universal time: dom 2022-04-17 14:37:57 UTC                
                 RTC time: dom 2022-04-17 14:37:56                    
                Time zone: America/Argentina/Buenos_Aires (-03, -0300)
System clock synchronized: yes                                        
              NTP service: active                                     
          RTC in local TZ: yes                                        

Warning: The system is configured to read the RTC time in the local time zone.
         This mode cannot be fully supported. It will create various problems
         with time zone changes and daylight saving time adjustments. The RTC
         time is never updated, it relies on external facilities to maintain it.
         If at all possible, use RTC in UTC by calling
         'timedatectl set-local-rtc 0'.

Como vemos, el reloj está atrasado 1 segundo.

En los sistemas de tipo UNIX es posible configurar la hora por el método
estandar del comando date. Por ejemplo:

sudo date +%T -s "14:37:57"

o bien cambiamos la fecha con

sudo date +%Y%m%d -s "20220417"

Para ver el reloj de sistema, podíamos utilizar:

sudo hwclock

Si contábamos con una conexión a internet, podríamos utilizar el
servicio NTP, que hace uso de relojes atómicos sincronizados a través de
Internet. Para ello ingresaríamos:

sudo hwclock -r

Sin embargo, el demonio correspondiente a systemd nos permite hacerlo
con timedatectl. Para poner una hora específica en el RTC del sistema
podría podría ingresarla con set-time hh:mm:ss o set-date aaaa-mm-dd:

timedatectl set-time 14:47:57

Sin embargo, el problema anunciado no es atraso de un segundo, sino en
que el sistema de cómputo particular está configurado para leer la hora
de un reloj de la computadora configurado según la zona horaria local.
Esto significa que el reloj de la computadora está sincronizado con la
hora local del lugar de residencia en lugar de estarlo con la hora
universal "UTC".

Esto alberga algunos inconvenientes: la zona de tiempo interna del
sistema variaría indefectiblemente al trasladar geográficamente el
equipos (caso que nuestro equipos sea portátil y viajemos en el Avión
Negro), al igual que el uso estacional de acuerdo a los horarios de
verano si estos aplican. En cualquier caso esto provocaría "huecos" en
la hora del sistema, y en consecuencia en el registro de archivos.

Esta configuración "fija" tenía sentido en equipos de permanencia
geográfica fija, sin acceso a la red de datos y sin acceso remoto, o
incluso en aquellos sistemas de cómputo en los cuales su localización
debía permanecer como oculto secreto.

Normalmente no es algo gravísimo en un equipo particular, pero que sí
podría provocar paradojas temporales que perturben el funcionamiento
armónico de un servidor, sobre todo en acciones pre-programadas con
fecha y horarios.

Sin embargo, para la mayoría de los casos se propone hoy posible ajustar
el reloj de forma dinámica con un servicio de red conectado a un reloj
atómico en hora universal UTC, e indicandole al sistema en qué zona
horaria nos encontramos. En el caso de GNU con Linux, las zonas horarias
se encuentran divididas geográficamente en la carpeta
/usr/share/zoneinfo/. Naturalmente que el sistema operativo compensará
las diferencias entre el reloj calibrado en UTC conociendo el lugar
geográfico en el cual nos encontramos.

Para lograr tal ajuste, debemos contar con una conexión a internet
válida. Luego ingresamos.

timedatectl set-local-rtc 0

También podríamos desactivar el ajuste de reloj automático por red con:

timedatectl set-upt no

...y luego lo volvemos a activar:

timedatectl set-upt yes

En tal puesta en línea, "se pondrá en hora" con un reloj atómico de
referencia a través de internet. Como vemos, al ingresar el comando
timedatectl, ahora nos informa:

               Local time: dom 2022-04-17 11:46:59 -03                
           Universal time: dom 2022-04-17 14:46:59 UTC                
                 RTC time: dom 2022-04-17 14:46:59                    
                Time zone: America/Argentina/Buenos_Aires (-03, -0300)
System clock synchronized: yes                                        
              NTP service: active                                     
          RTC in local TZ: no

Ahora bien, cada usuario del servidor podrá únicamente alterar la hora
local si desea proveer una zona horaria.

En el caso de querer hacerlo desde la terminal podremos utilizar también
timedatectl. Para configurar la hora del servidor en tiempo universal,
introducimos: timedatectl set-timezone UTC

Ahora bien, los usuarios del sistema podrán reglar sus horas
convirtiéndolas a hora local, ya sea a través de su entorno de
escritorio o bien desde su sesión de intérprete de comandos.

En el primer caso es muy simple: cada usuario podrá elegir la
configuración de fecha y hora local (Sistema/Preferenias/Hardware/Gestor
de la hora y la fecha):

Presionamos el botón Editar, y elegimos una localización en el
planisferio o bien la buscamos una ciudad o zona.

En caso de querer utilizar la terminal, primero listaremos qué zonas
horarias se encuentran disponibles con:

timedatectl list-timezones

Se listarán todas por localización geográfica alfabética específica, o
bien por denominación genérica (por ejemplo, el área específica
America/Argentina/Buenos_Aires o bien la zona horaria Etc/GMT+3 (lo que
indicaría que la hora de Greewich Village está adelantada tres horas con
respecto a la banda horaria). Una vez que encontramos la que deseamos,
podremos abandonar el listado con q.

Finalmente, podremos instruir la zona de tiempo deseada a Ubuntu,
mediante:

timedatectl set-timezone Etc/GMT+3

o bien:

timedatectl set-timezone America/Argentina/Buenos_Aires

Podremos configurar ahora la banda horaria deseada en nuestro intérprete
de comandos. Por ejemplo, le podríamos agregar al fichero

nano ~/.bashrc

y agregarle el siguiente contenido que especifique la hora local:

export TZ='Etc/GMT+3'

Nota: En BSD esto puede especificarse como UTC-3.

Esto tiene sentido si los usuarios acceden remotamente al sistema desde
localizaciones fijas, etcétera.

Encuadrados en estas modificaciones, la Hora del Pueblo se presentará
correcta en nuestro sistema, y se actualizará por internet, toda vez que
las funcionalidades asociadas a ella - tal como pantalla en modo
nocturno, reportes de tiempo, etcétera - se harán agradablemente
patentes.

El compañero Paladino podrá ampliarle mis pensamientos al respecto. Le
ruego que, con mis saludos de compatriota, quiera aceptar mis mejores
deseos.

Juan Domingo Perón