Introducción
El comando date en Linux es una herramienta esencial para mostrar y configurar la fecha y la hora del sistema. Aunque parece sencillo, su potencia reside en las múltiples opciones de formato y en su capacidad para trabajar con zonas horarias y tiempo universal coordinado (UTC). En este artículo exploraremos desde los usos más básicos hasta ejemplos avanzados que le permitirán administrar el tiempo de su máquina con precisión.
Sintaxis básica del comando date
La forma más simple de usar date es ejecutarlo sin argumentos, lo que devuelve la fecha y hora actuales según la zona horaria configurada en el sistema. Su sintaxis general es:
date [OPCIONES] [+FORMATO]
Donde OPCIONES modifican el comportamiento (como mostrar tiempo universal) y FORMATO es una cadena que especifica cómo se debe presentar la salida.
Mostrar la fecha y hora actual
Ejecutar simplemente:
date
produce una salida similar a:
mié sep 25 14:32:10 CEST 2025
Este formato predeterminado incluye el día de la semana, el día del mes, el mes, la hora, los minutos, los segundos, la zona horaria y el año.
Formato de salida personalizado
El verdadero poder de date se revela al usar el especificador +FORMATO. Cada carácter precededo por un signo de porcentaje representa un componente de la fecha o la hora. Algunos de los más usados son:
- %Y – año de cuatro dígitos (ej. 2025)
- %m – mes como número decimal (01‑12)
- %d – día del mes (01‑31)
- %H – hora en formato 24 horas (00‑23)
- %M – minuto (00‑59)
- %S – segundo (00‑59)
- %a – nombre abreviado del día de la semana (ej. vie)
- %A – nombre completo del día de la semana (ej. viernes)
- %b – nombre abreviado del mes (ej. sep)
- %B – nombre completo del mes (ej. septiembre)
Ejemplos de formatos comunes
Combinando estos especificadores se pueden crear formatos adaptados a diferentes necesidades:
- Para un timestamp ISO‑8601:
date '+%Y-%m-%dT%H:%M:%S%z'
date '+%A, %d de %B de %Y, %H:%M:%S'
date '+%F'
Establecer la fecha y hora del sistema
Además de mostrar, date permite ajustar el reloj del sistema. Esta operación requiere privilegios de root, por lo que suele ejecutarse con sudo. La sintaxis para establecer una nueva fecha y hora es:
sudo date MMDDhhmm[[CC]YY][.ss]
Donde:
- MM – mes (01‑12)
- DD – día del mes (01‑31)
- hh – hora (00‑23)
- mm – minuto (00‑59)
- CC – primeros dos dígitos del año (opcional)
- YY – últimos dos dígitos del año (opcional)
- .ss – segundos (opcional)
Por ejemplo, para fijar el reloj al 25 de septiembre de 2025 a las 14:30:00 se ejecutaría:
sudo date 092514302025.00
Es importante sincronizar el reloj de hardware después de cambiar la fecha del sistema, usando hwclock --systohc.
Usar UTC y zonas horarias
El comando date puede mostrar la hora en Tiempo Universal Coordinado (UTC) mediante la opción -u o estableciendo la variable de entorno TZ. Por ejemplo:
date -u
muestra la hora UTC, independientemente de la zona horaria local. Para trabajar con una zona específica sin cambiar la configuración del sistema, se puede usar:
TZ='America/New_York' date
Esto resulta útil en scripts que deben operar con fechas independientes de la ubicación del servidor.
Buenas prácticas y consideraciones de seguridad
- Siempre verifique que tenga permiso para cambiar el reloj del sistema; modificar la hora puede afectar servicios de autenticación, registros y tareas programadas.
- Prefiera usar el protocolo NTP (Network Time Protocol) para mantener el reloj sincronizado automáticamente en lugar de ajustes manuales frecuentes.
- Cuando utilice
dateen scripts, especifique explícitamente el formato deseado para evitar sorpresas debido a cambios en la configuración regional. - Registre los cambios de hora en un archivo de log para auditoría.
Conclusión
El comando date es mucho más que una simple utilidad para ver la hora; su capacidad de formato, ajuste y manejo de zonas horarias lo convierte en una herramienta indispensable para administradores de sistemas y desarrolladores. Dominar sus opciones le permitirá crear registros consistentes, programar tareas con precisión y mantener la integridad temporal de sus entornos Linux. Practique los ejemplos presentados y explore la página del manual (man date) para descubrir aún más posibilidades.