Este artículo explica cómo cambiar la zona horaria en un servidor Linux para que la hora coincida con nuestra zona horaria local.

En un servidor Debian, veo que las fechas en los logs no coinciden con la zona horaria local. Al verificar la hora del servidor, veo que la zona horaria del mismo es UTC:

root@debian:~# date
Tue Jan 26 11:16:06 UTC 2021

Esto significa que no está mal la hora, sino que se debe modificar la zona horaria para que refleje la de nuestro país (o cualquiera sea la zona horaria deseada, si presta servicios a usuarios de todo el mundo). Los sistemas que utilizan el gestor de inicio systemd cuentan con la herramienta timedatectl para listar y setear la zona horaria de una computadora:

root@debian:~# timedatectl
               Local time: Tue 2021-01-26 11:15:51 UTC
           Universal time: Tue 2021-01-26 11:15:51 UTC
                 RTC time: Tue 2021-01-26 11:15:51
                Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: yes
              NTP service: inactive
          RTC in local TZ: no

Antes de cambiar la zona horaria, se debe verificar cuáles están disponibles. Por ejemplo, para Argentina:

root@debian:~# timedatectl list-timezones | grep Argentina
America/Argentina/Buenos_Aires
America/Argentina/Catamarca
America/Argentina/Cordoba
America/Argentina/Jujuy
America/Argentina/La_Rioja
America/Argentina/Mendoza
America/Argentina/Rio_Gallegos
America/Argentina/Salta
America/Argentina/San_Juan
America/Argentina/San_Luis
America/Argentina/Tucuman
America/Argentina/Ushuaia

Para configurar una nueva zona horaria simplemente se debe pasar como parámetro al subcomando set-timezone:

root@debian:~# timedatectl set-timezone 'America/Argentina/Buenos_Aires'

Ahora la hora coincide con mi hora local de Argentina:

root@debian:~# timedatectl
               Local time: Tue 2021-01-26 08:17:22 -03
           Universal time: Tue 2021-01-26 11:17:22 UTC
                 RTC time: Tue 2021-01-26 11:17:23
                Time zone: America/Argentina/Buenos_Aires (-03, -0300)
System clock synchronized: yes
              NTP service: inactive
          RTC in local TZ: no

Se puede comprobar con el comando date:

root@debian:~# date
Tue Jan 26 08:17:24 -03 2021

Esta zona horaria queda configurada en el archivo /etc/timezone:

root@debian:~# cat /etc/timezone 
America/Argentina/Buenos_Aires

Para más información, consultar la página de manual man timedatectl.

Compartí este artículo