Comandos LinuxExplicados en español
/
Ficha75 / 104
Categoría
Sistema
Ejemplos
6
Ver también
uname · crontab · uptime · journalctl

date

date (fecha)

Muestra la fecha y la hora del equipo, o las cambia.

Imprime la fecha y la hora del sistema, y con -d calcula otras fechas a partir de la actual. Lo usas para saber la hora, para darle el formato que necesites en un script o para saber cuándo se modificó un archivo. Cambiar la hora del sistema casi nunca se hace con date: para eso están timedatectl y el sincronizador de hora del sistema.

Sintaxisdate [opciones] [+FORMATO]
Precaución

date -s mueve el reloj de todo el equipo de golpe: los certificados de internet dejan de validar, los registros quedan con horas raras y una base de datos puede quedar corrupta. Además, si el sistema corrige la hora solo con NTP, tu cambio se pierde a los pocos minutos. Para corregir la hora de verdad usa timedatectl, no date -s.

§ 1

Despiece

6 ejemplos
Ver la fecha y la hora

Ver la fecha y la hora

1 pieza
Lámina01 / 06
Comandodate
Piezas1
Escala1:1
N.ºPiezaTipoQué hace
1dateComandoEl comando que muestra la fecha y la hora del sistema.
Resultado

Sale algo como Sun Oct 4 03:56:17 AM CST 2026: día de la semana, mes, día, hora en formato de 12 horas, el nombre corto de tu huso (CST en México central) y el año. Sin opciones, date usa la hora local, no la universal.

Ver la hora universal

2 piezas
Lámina02 / 06
Comandodate -u
Piezas2
Escala1:1
N.ºPiezaTipoQué hace
1dateComandoEl comando que muestra la fecha y la hora del sistema.
2-uOpciónMuestra la hora universal (UTC) en vez de la local.
Resultado

La misma hora pero en UTC: Sun Oct 4 09:56:17 AM UTC 2026, seis horas adelante de la local en Ciudad de México. Los servidores y los registros de red suelen trabajar en UTC porque no cambian con las horas de verano; por eso es la hora que comparas entre máquinas.

Darle el formato que quieras

2 piezas
Lámina03 / 06
Comandodate "+%Y-%m-%d %H:%M:%S"
Piezas2
Escala1:1
N.ºPiezaTipoQué hace
1dateComandoEl comando que muestra la fecha y la hora del sistema.
2"+%Y-%m-%d %H:%M:%S"ValorEl formato que quieres, con un + adelante y entre comillas.
Resultado

Imprime 2026-10-04 03:56:17. Cada código es una parte de la fecha: %Y año de cuatro dígitos, %m mes con dos, %d día, %H hora de 24 horas, %M minutos y %S segundos. Con +%d/%m/%Y sale 04/10/2026. Entre comillas para que la terminal no toque nada.

Calcular otra fecha

3 piezas
Lámina04 / 06
Comandodate -d "tomorrow 14:30"
Piezas3
Escala1:1
N.ºPiezaTipoQué hace
1dateComandoEl comando que muestra la fecha y la hora del sistema.
2-dOpciónEn vez de la hora de ahora, calcula la que describes en el texto que sigue.
3"tomorrow 14:30"ArgumentoLa fecha que quieres calcular. Las palabras van en inglés y la hora en formato de 24 horas.
Resultado

Imprime Mon Oct 5 02:30:00 PM CST 2026, o sea mañana a las dos y media de la tarde. Ojo: date solo entiende palabras en inglés. Con date -d "mañana" te responde date: invalid date, porque mañana no existe para él; usa tomorrow, yesterday o next monday.

Ver cuándo se modificó un archivo

3 piezas
Lámina05 / 06
Comandodate -r /etc/hostname
Piezas3
Escala1:1
N.ºPiezaTipoQué hace
1dateComandoEl comando que muestra la fecha y la hora del sistema.
2-rOpciónToma la fecha del archivo que sigue, no la de ahora.
3/etc/hostnameArgumentoEl archivo del que quieres la fecha de modificación.
Resultado

Imprime Wed Mar 4 17:37:35 CST 2026, la última vez que alguien tocó ese archivo. Sirve para saber cuándo se instaló o configuró algo, o para comparar dos archivos. ls -l también te muestra esa fecha, junto con los permisos.

Cambiar la hora del sistema

4 piezas
Lámina06 / 06
Comandosudo date -s "2026-10-04 12:00:00"
Piezas4
Escala1:1
N.ºPiezaTipoQué hace
1sudoComandoSe ejecuta con permisos de administrador (root). Te pide tu contraseña la primera vez.
2dateComandoEl comando que muestra la fecha y la hora del sistema.
3-sOpciónCambia la fecha y la hora del sistema en vez de solo mostrarlas.
4"2026-10-04 12:00:00"ArgumentoLa fecha y hora nuevas, con año-mes-día y luego hora:minuto:segundo.
Resultado

Fija el reloj del equipo en esa fecha y hora, sin imprimir nada. Tiene que ser con sudo: sin él responde date: cannot set date: Operation not permitted. En Debian 13 y Ubuntu 24.04 la forma correcta es sudo timedatectl set-time "2026-10-04 12:00:00", y antes conviene ver si el equipo está sincronizando la hora con timedatectl status, porque si el servicio de hora está activo te va a corregir el reloj.

§ 2

Opciones

Las que sí vas a usar
OpciónQué hace
-u--utcMuestra la hora universal (UTC) en vez de la local de tu ciudad. En México la diferencia suele ser de 6 horas.
-d--date=STRINGMuestra otra fecha en vez de la de ahora: tomorrow, yesterday, +30 days, 2026-01-15. Las palabras se escriben en inglés.
-r--reference=ARCHIVOMuestra la fecha en que se modificó un archivo por última vez.
-s--set=STRINGCambia la fecha y la hora del sistema. Necesita root y, en Debian y Ubuntu, conviene usar timedatectl en su lugar.
-I--iso-8601Formato estándar ISO 8601: 2026-10-04. Con -Iseconds incluye la hora: 2026-10-04T03:56:17-06:00.
-R--rfc-emailEl formato que usan los correos: Mon, 04 Oct 2026 03:56:17 -0600.
-f--file=ARCHIVOLee fechas de un archivo, una por línea, y aplica en cada una lo que pediste. Se usa en scripts.
§ 3

Fallas comunes

FallaRemedio
Escribir la fecha con palabras en español: date -d "mañana".date responde date: invalid date ‘mañana’. Las palabras que entiende van en inglés: tomorrow, yesterday, next friday, 2 weeks ago. Para las 9 de mañana: date -d "tomorrow 09:00".
Correr date -s sin sudo.Te responde date: cannot set date: Operation not permitted, porque el reloj es de root. Necesitas sudo date -s "..." y aun así es mejor timedatectl, que además te avisa si la hora está desfasada.
Confundir %m con %M.La minúscula es el mes (%m, con dos dígitos) y la mayúscula son los minutos (%M). También %d es el día, %H la hora en 24 horas e %I la hora en 12 horas con AM o PM. Con date "+%Y-%m-%d %H:%M:%S" te queda todo claro.
Comparar tu hora local con la de un servidor y ver dos horas de diferencia.date usa tu hora local y date -u la universal. En México la diferencia suele ser de 6 horas, así que si tu hora local son las 10 de la mañana, en UTC son las 4 de la tarde. Cuando comparas máquinas o lees logs de un servidor, casi siempre estás viendo UTC.
§ 4

Preguntas frecuentes

¿Cómo veo la fecha y la hora de mi máquina?
Con date, sin opciones: sale el día, la fecha, la hora y el nombre corto de tu huso horario al final. Usa date -u para ver la hora universal, que es la que usan casi todos los servidores. Para un formato limpio y ordenable, date +%Y-%m-%d te da 2026-10-04.
¿Cómo cambio la fecha y la hora del sistema?
En Debian 13 y Ubuntu 24.04 con sudo timedatectl set-time "2026-10-04 12:00:00". Antes revisa timedatectl status para ver si la hora se está sincronizando sola con NTP, porque en ese caso tu cambio se pierde; y si lo que está mal es el huso, usa sudo timedatectl set-timezone America/Mexico_City. date -s funciona, pero no se lleva bien con esa sincronización.
¿Cómo sé cuándo se modificó un archivo?
Con date -r archivo te imprime la fecha de modificación. Para ver también los permisos y el dueño en la misma línea, usa ls -l archivo, que ahí sí aparece la fecha. Para saber cuándo se cambió algo del sistema, conviene journalctl.
¿Cómo calculo qué día será dentro de 30 días?
Con date -d "+30 days". Las palabras y los tamaños van en inglés: yesterday, next monday, "2 weeks ago", "-3 days". Y para sacar la fecha de un número que te den, como un timestamp de una API, usa date -d @1600000000.
¿Cuál es la diferencia entre date y timedatectl?
date viene de coreutils y sirve para mostrar y calcular fechas, y de paso cambiar la hora, aunque no es lo ideal. timedatectl viene de systemd y administra la hora del sistema: la cambia, configura el huso y muestra si la sincronización con los servidores de hora está activa y qué tan desviada está.
§ 5

Ver también