El comando date en Linux: mostrar y configurar la fecha y hora

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'
  • Para una presentación legible en español:
  • date '+%A, %d de %B de %Y, %H:%M:%S'
  • Para incluir solo la fecha:
  • 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 date en 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.