Cómo cambiar la hora en Linux

diciembre 28, 2022 0 Comments

Linux puede ajustar la hora en forma automática o podemos hacerlo nosotros desde la terminal o el escritorio.

En este post vamos a ver cómo cambiar la hora en Linux. No es que sea demasiado difícil ya que la mayoría de los escritorios incluye asistentes que permiten hacerlo con un par de clics, pero resulta una buena excusa para conocer más cómo funcionan nuestro ordenador y sistema operativo.

En los viejos tiempos un reloj era un artículo de lujo, algo que se regalaba en la mayoría de edad, cuando cumplías 25 años en un trabajo o se transmitía como herencia al hijo mayor. De hecho, fue lo primero que mi padre y sus hermanos inmigrantes gallegos se compraron como inversión cuando empezaron a ganar plata en Argentina.

Sin embargo, con la llegada de los japoneses, los costos de fabricación se abarataron y pronto otros dispositivos como microondas, videograbadoras y hasta cafeteras incorporaron esta función. Cuando los dispositivos móviles se hicieron más masivos y portátiles el clásico reloj pulsera fue perdiendo protagonismo. Hoy sobrevive en forma de smartwatches, pero en la práctica solo son un accesorio del teléfono.

Ignoro por qué los sistemas operativos muestran un reloj. Supongo que porque quedaba mal el espacio vacío en la barra y, dado que para su funcionamiento necesita de un reloj, mostrar la hora no era algo demasiado complicado.

Cómo cambiar la hora en Linux

Si tienes instalado Windows y Linux en tu ordenador te habrás dado cuenta de que, si sales de Linux y entras en Windows, este tiene una hora diferente a la local. Esto se debe a que Linux asume que el reloj de hardware está sincronizado con el tiempo coordinado universal, mientras que Windows asume que está en la hora local. El último sistema operativo en ser utilizado ajusta el reloj de hardware de acuerdo con sus necesidades.

La solución pasa por hacer que Windows haga sus cálculos a partir de la hora UTC o que Linux lo haga con la hora local. Es mucho más fácil hacer que Linux cambie ya que solo tenemos que escribir el comando:
sudo timedatectl set-local-rtc 1

En general, las distribuciones Linux te preguntan qué zona horaria utilizar y a partir de ese momento ajustarán la hora automáticamente ya sea tomando la información de un servidor de hora en red o haciendo los cálculos correspondientes a partir de la hora indicada por el servidor de tiempo universal. Para el caso de que la conexión con el servidor de hora en red no esté disponible, los desarrolladores suelen incluir archivos con instrucciones para que el sistema sepa cómo calcular las variaciones entre el horario de verano e invierno.

Los diferentes escritorios permiten anular la sincronización automática y fijarla en forma manual.

Desde la terminal podemos ajustar la hora con el comando:
sudo timedatectl set-time hh:mm:ss
Por ejemplo, para poner la hora en las tres menos cuarto de la tarde hacemos:
sudo timedatectl set-time 14:45:00
Para cancelar la sincronización automática de la hora con un servidor en red utilizamos el comando:
sudo timedatectl set-ntp false
Para reactivarla escribimos el comando:
sudo timedatectl set-ntp true
Podemos ver las zonas horarias disponibles con:
timedatectl list-timezones
Y cambiar de una a otra con:
timedatectl set-timezone CONTINENTE/PAÍS
o
timedatectl set-timezone Continente/País/Ciudad
Y en algunos casos
timedatectl set-timezone Continente/Ciudad/Localidad.
En todo caso, pega tal cuál aparece en la lista.
Por ejemplo:
timedatectl set-timezone America/Indiana/Indianapolis

Las distribuciones Linux utilizan el Tiempo Coordinado Universal para ajustar el reloj a la hora local.

Durante el proceso de instalación las distribuciones Linux preguntan al usuario con qué zona horaria tienen que trabajar.

Si no quieres cambiar de zona horaria puedes ver qué hora es en otra con el comando:

TZ=Zona_horaria date Reemplazando zona horaria con el nombre en que aparece en la lista. Por ejemplo:
TZ=America/Indiana/Indianapolis date
Para ver la hora del reloj del hardware se usa el comando:
hwclock -r
Podemos sincronizar el reloj del hardware con el del sistema escribiendo:
hwclock --systohc

Algunas aplicaciones para ver la hora

Si no te gusta el reloj que viene con tu escritorio, en los repositorios contamos con varias aplicaciones que nos permiten ver la hora. Algunas de ellas son:

Clocks

También puede aparecer en los gestores de paquetes con el nombre de Relojes. Es una aplicación parte del proyecto GNOME e incluye varios programas relacionados con la medición del tiempo incluyendo:

  • Relojes para mostrar la hora en diferentes partes del mundo.
  • Alarmas.
  • Contadores hacia atrás.
  • Cronómetros.

Reloj analógico

Disponible en el centro de software de las distribuciones basadas en el escritorio KDE, este reloj analógico se agrega al escritorio y muestra el paso de las horas con la posición de las agujas.

DClock

Otro título disponible en los repositorios. Como indica la D del título se trata de un reloj digital que simula mostrar los números con leds. Además, muestra la fecha y permite configurar una alarma.

Slashtime

Este programa de los repositorios muestra la hora en diferentes zonas del globo. para poder verla solo tenemos que posar el cursor y hacer doble clic en la ciudad cuyo horario queremos ver.

Retro

Un reloj digital de estilo antiguo cuyo aspecto puede modificarse utilizando hojas de estilo. Está disponible en formato Flatpak.

timedatecalculator

Desde la tienda de Snap nos llega esta útil aplicación que calcula fechas. Obtiene resultados a partir de la hora y el intervalo de tiempo de inicio/finalización o el intervalo de tiempo a partir de la hora y la fecha de inicio y finalización

Cómo los ordenadores miden el tiempo

La cantidad de minutos proviene de multiplicar las 12 falanges de cuatro dedos multiplicada por los otros 5

La división de las horas en 60 minutos proviene de la antigua Babilonia. Era lo máximo que se podía contar utilizando un método manual

Probablemente la forma más antigua de medición del tiempo sea la posición del sol. El día era el período que transcurría hasta que el sol volvía a estar en su posición. La primera subdivisión del día la hicieron los sacerdotes egipcios quienes llevaban el control del momento de la aparición de las constelaciones, eto permitió dividir la noche en 12 subperíodos de igual duración.

En el siglo X aparecen los relojes de sol que marcan el paso de las horas durante el día mediante la proyección de las sombras. También se dividió el período de claridad en 12 horas.

La subdivisión de la hora en 60 minutos es responsabilidad de los babilonios. Ellos usaban un sistema de conteo basado en el uso de las manos. Con el dedo gordo de la mano derecha iban contando, marcando cada una de las falanges de los otros cuatro dedos, cuando tenían que contar más de 12 levantaban un dedo de la mano izquierda. Con eso podían contar hasta 60.

Con el correr de tiempo se fueron creando diferentes mecanismos de registrar el paso del tiempo usando mecanismos como la ya mencionada sombra, la fuerza de gravedad o la velocidad del consumo de una vela.

Los ordenadores tienen dos formas de medir el paso del tiempo. Una se basa en hardware y otra en software.

El reloj de tiempo real (RTC)

Se alimenta con una batería y funciona aun cuando el ordenador está apagado. Lo de reloj lo decimos en sentido amplio ya que no tiene botones, agujas o números leds. Se trata de un circuito integrado que forma parte de la placa base y es el encargado de hacer funcionar el reloj del sistema. Ese circuito tiene un oscilador de cristal basado en un cristal piezoeléctrico. Cada cristal tiene una estructura cristalina conformada por un patrón regular y repetido de átomos. Al aplicar un campo a través del cristal se distorsiona su estructura cristalina y, al eliminar el campo retorna al estado original, generando así una señal eléctrica de frecuencia muy precisa.

El reloj del sistema

El reloj del sistema se basa en información del reloj de tiempo real pero el encargado de gestionarlo es el núcleo del sistema operativo.  Su trabajo es configurar, programar y sincronizar las tareas, procesos e interrupciones.

Tampoco es un reloj al estilo de las aplicaciones que vemos en el móvil ya que no muestra las horas ni representa el paso del tiempo con números.  Lo que hace es registrar el paso de segundos y microsegundos mediante la emisión de señales digitales.

Un problema que hay que solucionar es el de la falta de sincronización entre ambos relojes (Que utilizan formas dee medición del tiempo diferentes) entre sí y con la hora real.  Para esto, cuando se inicia el ordenador, el reloj del sistema lee la hora del reloj de tiempo real y aplica una fórmula de corrección. Luego, en caso de que el ordenador esté conectado a Internet determina la hora real y sincroniza el reloj del sistema para que refleje el paso del tiempo en forma adecuada.

Habrás observado en equipos antiguos que, si no hay conexión a Internet la hora, en lugar de la real es apenas unos minutos después de la hora que lo apagaste. Eso se soluciona cambiando la batería que alimenta el reloj de tiempo real.

El reloj de hardware lleva el control del paso del tiempo cuando el ordenador está apagado

Un circuito integrado en la placa base mide el paso del tiempo mediante la oscilación de un cristal. Con sus datos el núcleo del sistema operativo ajusta el reloj del sistema.

En los ordenadores modernos es posible que el sistema operativo ignore al reloj de tiempo real y consulte directamente al servidor de hora en red.


Some say he’s half man half fish, others say he’s more of a seventy/thirty split. Either way he’s a fishy bastard.