La timezone es la zona horaria de una máquina en Linux. La región se establece cuando instalamos nuestra distro Linux, pero siempre se puede volver a configurar la zona horaria de la máquina con una de las franjas horarias mundiales disponibles.
Es importante tener bien configurada la zona horaria del sistema, porque muchas tareas del sistema dependen de ello, por ejemplo si configuramos una tarea programada a ciertas horas (tareas cron), y resulta que nuestra zona horaria no está correctamente configurada, pues esa tarea no se ejecutará cuando debe ejecutarse, sino varias horas antes, o después, dependiendo de la zona horaria que tenga configurada el sistema.
Tal como se comenta en Linuxize, para comprobar la zona horaria usamos el comando “timedatectl“.
Esta zona horaria del sistema se configura cuando se crea un enlace simbólico entre el archivo /etc/localtime hacia un identificador de zona horaria el directorio /usr/share/zoneinfo/
Lo comprobamos en nuestro sistema, haciendo un
ls -la /etc/localtime
Para ver todas las zonas horarias disponibles utilizamos el comando
timedatectl list -timezones
Y para configurar una zona horaria como la nuestra usamos el comando timedatectl set -timezone y el nombre de la zona horaria:
timedatectl set -timezone
Por ejemplo vamos a ponernos la hora de Nassau (Bahamas)
timedatectl set -timezone America/Nassau
Y comprobamos que la zona horaria y la hora se han cambiado correctamente, ejecutando el comando “timedatectl“, el comando “date” y mostrando la ruta del enlace de “/etc/localtime“:
(Aunque la hora se ha ya cambiado, debido a que se ha ajustado a la franja horaria o “timezone” que hemos configurado, si simplemente queremos cambiar la hora en Linux sin cambiar la zona horaria, lo haremos de otra forma).
Si queremos cambiar de otra forma la zona horaria podemos hacerlo por medio del enlace simbólico hacia una de las zonas que se encuentran en /usr/share/zoneinfo/ tal y como hemos visto antes, ya que el archivo /etc/localtime crea un link simbólico hacia la zona que estamos usando (en el caso enterior, America/Nassau);
Sabiendo esto, podemos cambiar la zona simplemente eliminando el enlace anterior y creando uno nuevo a la zona que nos interesa.
Primero tenemos que eliminar el enlace existente anterior, porque sino recibiremos el mensaje :
ln: fallo al crear el enlace simbólico "etc/localtime": El fichero ya existe
Así que eliminamos el enlace simbólico anterior:
rm -rf /etc/localtime
Y creamos un nuevo enlace apuntando al fichero de la zona horaria que deseamos configurar, en este caso vamos a poner la de Mexico_City:
sudo ln -s /usr/share/zoneinfo/America/MexicoCity /etc/localtime
A continuación comprobamos de nuevo la configuración de la zona horaria, con timedatectl, y también podemos comprobar que el anterior enlace simbólico ha cambiado:
En Ubuntu y en Debian, cuando se trate de distros con interfaz gráfica (GUI), podemos cambiar el timezone desde las opciones del panel de configuración, y también desde la terminal, usando el gestor de paquetes dpkg, que es el gestor de paquetes de Debian..
Podemos cambiar el timezone con el panel de Configuración / buscando las opciones de Fecha y hora.
–> Aquí vemos donde hacerlo en Ubuntu
Y en Debian es practicamente igual, desde el panel de configuración:
Aún tenemos otra opción para cambiar el timezone en Debian/Ubuntu desde la terminal;
Usando dpkg, el gestor de paquetes.
dpkg-reconfigure tzdata
Comprobamos que la zona horaria ha cambiado, mostrando el contenido del fichero /etc/timezone:
cat /etc/timezone
Para cambiar la zona horaria en Linux, utiliza el comando
sudo timedatectl set-timezone
, seguido de la zona horaria que quieres establecer.
Y en Ubuntu y Debian, usa el comando
dpkg-reconfigure tzdata
o las opciones de la Configuración, en “Fecha/hora”