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
CESTdurante 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 utilizardate +%Yy nodate %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
datemuestra normalmente la hora local configurada, mientras quedate -umuestra 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
caltimedatectlhwclockuptimedate
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
- Ejecuta
datey comprueba la fecha y hora que muestra tu sistema. - Utiliza
date +%d/%m/%Ypara mostrar únicamente la fecha en formato habitual en España. - Utiliza
date +%H:%M:%Spara mostrar únicamente la hora. - Prueba diferentes códigos de formato, como
%Y,%m,%d,%H,%My%S, y observa qué información proporciona cada uno. - Ejecuta
date -uy compara el resultado condate. ¿Qué diferencia observas? - Crea una marca de tiempo utilizando
date +%Y%m%d_%H%M%Sy explica qué representa cada parte del resultado. - Utiliza el comando
datedentro de un script para mostrar la hora a la que comienza una determinada operación. - Investiga qué información proporciona el comando
timedatectly compárala con la obtenida mediantedate.
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:
- ¿Qué información muestra el comando
datecuando se ejecuta sin ningún parámetro? - ¿Qué diferencia existe entre
%my%Men los formatos utilizados pordate? - ¿Qué diferencia existe entre ejecutar
dateydate -u? - ¿Para qué puede resultar útil generar una marca de tiempo mediante
date +%Y%m%d_%H%M%S? - ¿Por qué modificar la fecha y hora del sistema puede requerir permisos de administrador?
- ¿Qué ventajas tiene utilizar un formato de fecha estandarizado como
%Ffrente al formato predeterminado dedate?
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.