-->

Comando date

date

El comando date es una herramienta de línea de comandos disponible en Linux y otros sistemas Unix que permite mostrar la fecha y hora actuales del sistema. También puede utilizarse para dar formato a la información temporal y, con los permisos adecuados, modificar la fecha y hora del sistema.

Categoría Sistema y utilidades
Disponible en Linux, Unix y sistemas derivados
Equivalente en Windows date, time, Get-Date (PowerShell)
Sustituye a No sustituye a otro comando; es una utilidad tradicional de los sistemas Unix para consultar y modificar la fecha y hora del sistema.
¿Requiere permisos de administrador? No para consultar la fecha y hora. Sí se necesitan privilegios de administrador para modificar la fecha y hora del sistema.

¿Qué significa su nombre?

DATE es simplemente la palabra inglesa date, que significa fecha.

El nombre describe directamente la función principal del comando: consultar o establecer la fecha y hora del sistema.

¿Para qué sirve?

El comando date sirve principalmente para consultar la fecha y hora actuales del sistema desde la terminal. Es especialmente útil en scripts y tareas de administración porque permite obtener información temporal y mostrarla con diferentes formatos.

También permite personalizar la información mostrada mediante códigos de formato. Por ejemplo, podemos obtener únicamente el año, el mes, el día, la hora o una combinación de todos ellos.

Con los permisos adecuados, date también puede utilizarse para modificar la fecha y hora del sistema. Sin embargo, en sistemas Linux modernos esta tarea suele estar gestionada automáticamente mediante servicios de sincronización de tiempo como systemd-timesyncd, chronyd o ntpd.

Sintaxis

date [opciones] [+formato]

La parte +formato permite indicar exactamente qué información queremos mostrar.

Formato Descripción
%Y Año con cuatro cifras.
%m Mes con dos cifras.
%d Día del mes con dos cifras.
%H Hora en formato de 24 horas.
%M Minutos.
%S Segundos.
%A Nombre completo del día de la semana.
%B Nombre completo del mes.
%F Fecha en formato ISO: año-mes-día.
%T Hora en formato HH:MM:SS.

Opciones más utilizadas

Opción / formato Descripción
date Muestra la fecha y hora actuales utilizando el formato predeterminado.
date +%Y Muestra únicamente el año actual.
date +%m-%d-%Y Muestra la fecha utilizando mes, día y año.
date +%H:%M:%S Muestra únicamente la hora, los minutos y los segundos.
date +%F Muestra la fecha en formato ISO 8601.
date -u Muestra la fecha y hora utilizando UTC en lugar de la zona horaria local.
date -R Muestra la fecha y hora utilizando un formato compatible con RFC 2822.

Comandos más utilizados

Comando Descripción
date Muestra la fecha y hora actuales.
date +%d/%m/%Y Muestra la fecha en formato día/mes/año.
date +%H:%M:%S Muestra la hora actual.
date +%F Muestra la fecha en formato ISO.
date -u Muestra la fecha y hora en UTC.
date -R Muestra la fecha y hora en formato RFC 2822.

Equivalencia con otros sistemas

Acción Linux Windows CMD Windows PowerShell
Mostrar fecha date date /t Get-Date
Mostrar hora date +%H:%M:%S time /t Get-Date -Format "HH:mm:ss"
Mostrar fecha personalizada date +%d/%m/%Y date /t Get-Date -Format "dd/MM/yyyy"
Mostrar UTC date -u powershell -Command "(Get-Date).ToUniversalTime()" (Get-Date).ToUniversalTime()

Ejemplos

Mostrar la fecha y hora actuales

date

Mostrar únicamente la fecha

date +%d/%m/%Y

Mostrar únicamente la hora

date +%H:%M:%S

Mostrar la fecha en formato ISO

date +%F

Mostrar el día de la semana

date +%A

Mostrar la fecha y hora en UTC

date -u

Crear una marca de tiempo para utilizarla en un nombre de archivo

date +%Y%m%d_%H%M%S

Ejemplo de salida

$ date
mié ago 26 18:59:42 CEST 2026

$ date +%d/%m/%Y
26/08/2026

$ date +%H:%M:%S
18:59:42

$ date +%Y%m%d_%H%M%S
20260826_185942

¿Cómo interpretar la salida?

  • Fecha: indica el día, mes y año configurados en el sistema.
  • Hora: muestra la hora actual según la zona horaria configurada.
  • Zona horaria: indica la zona utilizada para representar la hora local, por ejemplo CEST durante el horario de verano de España.
  • Formato personalizado: mediante los códigos precedidos por % podemos seleccionar exactamente qué información queremos mostrar.

Errores habituales

  • Confundir %m, que representa el mes, con %M, que representa los minutos. Linux distingue entre mayúsculas y minúsculas en estos códigos.
  • Olvidar el símbolo + antes de la cadena de formato. Por ejemplo, debemos utilizar date +%Y y no date %Y.
  • Intentar modificar la fecha del sistema sin privilegios suficientes. Cambiar la hora requiere permisos de administrador y puede afectar a otros servicios del sistema.
  • Suponer que la hora mostrada siempre corresponde a UTC. El comando date muestra normalmente la hora local configurada, mientras que date -u muestra la hora UTC.

Conceptos relacionados

  • Fecha y hora del sistema
  • Zona horaria
  • UTC
  • Formato de fecha
  • Marca de tiempo (timestamp)
  • Sincronización horaria
  • NTP

Comandos relacionados

  • cal
  • timedatectl
  • hwclock
  • uptime
  • date

Curiosidades

El comando date es especialmente importante en programación y administración de sistemas porque permite generar marcas de tiempo de forma sencilla. Por ejemplo, es habitual utilizar date +%Y%m%d_%H%M%S para crear nombres de archivos únicos para copias de seguridad, registros (logs) o archivos temporales.

Además, muchos scripts utilizan date para registrar cuándo comenzó o terminó una determinada operación. De esta forma, la fecha y hora pasan a formar parte de la información de diagnóstico del sistema.

Prácticas propuestas

  1. Ejecuta date y comprueba la fecha y hora que muestra tu sistema.
  2. Utiliza date +%d/%m/%Y para mostrar únicamente la fecha en formato habitual en España.
  3. Utiliza date +%H:%M:%S para mostrar únicamente la hora.
  4. Prueba diferentes códigos de formato, como %Y, %m, %d, %H, %M y %S, y observa qué información proporciona cada uno.
  5. Ejecuta date -u y compara el resultado con date. ¿Qué diferencia observas?
  6. Crea una marca de tiempo utilizando date +%Y%m%d_%H%M%S y explica qué representa cada parte del resultado.
  7. Utiliza el comando date dentro de un script para mostrar la hora a la que comienza una determinada operación.
  8. Investiga qué información proporciona el comando timedatectl y compárala con la obtenida mediante date.

Consejo: Aprende a utilizar los códigos de formato de date, especialmente %Y, %m, %d, %H, %M y %S. Son muy útiles para crear nombres de archivos, generar registros y automatizar tareas mediante scripts.

Preguntas de reflexión:

  1. ¿Qué información muestra el comando date cuando se ejecuta sin ningún parámetro?
  2. ¿Qué diferencia existe entre %m y %M en los formatos utilizados por date?
  3. ¿Qué diferencia existe entre ejecutar date y date -u?
  4. ¿Para qué puede resultar útil generar una marca de tiempo mediante date +%Y%m%d_%H%M%S?
  5. ¿Por qué modificar la fecha y hora del sistema puede requerir permisos de administrador?
  6. ¿Qué ventajas tiene utilizar un formato de fecha estandarizado como %F frente al formato predeterminado de date?
Haz clic aquí para ver las soluciones y explicaciones

1. ¿Qué información muestra el comando date cuando se ejecuta sin ningún parámetro?

Muestra la fecha y hora actuales del sistema utilizando el formato predeterminado. La salida normalmente incluye el día de la semana, el mes, el día del mes, la hora, la zona horaria y el año.


2. ¿Qué diferencia existe entre %m y %M en los formatos utilizados por date?

%m representa el número del mes, mientras que %M representa los minutos. Por ejemplo, en una fecha como 26 de agosto a las 18:59, %m produciría 08 y %M produciría 59. Es importante recordar que estos códigos distinguen entre mayúsculas y minúsculas.


3. ¿Qué diferencia existe entre ejecutar date y date -u?

date muestra normalmente la fecha y hora utilizando la zona horaria local configurada en el sistema. Por el contrario, date -u muestra la fecha y hora expresadas en UTC (Tiempo Universal Coordinado), independientemente de la zona horaria local.


4. ¿Para qué puede resultar útil generar una marca de tiempo mediante date +%Y%m%d_%H%M%S?

Permite generar una representación compacta de la fecha y hora que puede utilizarse en nombres de archivos. Por ejemplo, una copia de seguridad podría llamarse backup_20260826_185942.tar. Esto permite identificar fácilmente cuándo se creó el archivo y evita utilizar nombres idénticos para diferentes copias.


5. ¿Por qué modificar la fecha y hora del sistema puede requerir permisos de administrador?

La fecha y hora del sistema son valores que afectan a todo el equipo y pueden influir en servicios, registros, certificados, conexiones de red, tareas programadas y otros procesos. Por este motivo, Linux restringe su modificación a usuarios con los privilegios necesarios.


6. ¿Qué ventajas tiene utilizar un formato de fecha estandarizado como %F frente al formato predeterminado de date?

El formato %F produce una fecha con la estructura YYYY-MM-DD, que corresponde al formato de fecha ISO 8601. Este formato resulta especialmente útil en scripts y programas porque es fácilmente ordenable de forma cronológica y evita muchas de las ambigüedades que pueden aparecer con formatos como día/mes/año o mes/día/año.