Qué es el tiempo Unix

El tiempo Unix cuenta los segundos transcurridos desde la medianoche del 1 de enero de 1970 en UTC, el epoch. Es como casi todos los sistemas operativos, bases de datos y protocolos guardan un instante: un único número, independiente de la zona horaria y del horario de verano.

El número no indica su unidad. Diez cifras son segundos, trece milisegundos como en JavaScript y Java, dieciséis microsegundos y diecinueve nanosegundos. Para fechas entre 1973 y 2286 basta el número de cifras para saberlo, y eso hace el modo automático.

La zona horaria solo interviene al escribir la fecha para una persona: el mismo timestamp es medianoche en Londres y la una en Madrid. Por eso el resultado muestra tanto UTC como la hora local de tu dispositivo.

Errores frecuentes

  • Leer milisegundos como segundos: un timestamp de trece cifras leído en segundos cae decenas de miles de años en el futuro.
  • Omitir la zona horaria: una fecha escrita sin ella puede leerse en UTC en un programa y en hora local en otro.
  • Guardar los segundos en un entero de 32 bits con signo: el 19 de enero de 2038 a las 03:14:07 UTC el valor se desborda y se vuelve negativo.

Preguntas frecuentes

¿El tiempo Unix cuenta los segundos intercalares?

No. Cada día dura exactamente 86.400 segundos; cuando se añade un segundo intercalar, los sistemas lo repiten o lo reparten. Por eso el tiempo Unix no es un recuento exacto de los segundos físicos transcurridos.

¿Qué es el problema del año 2038?

Los sistemas que guardan los segundos en un entero de 32 bits con signo llegan como máximo a 2.147.483.647, es decir, el 19 de enero de 2038. El segundo siguiente se convierte en un número negativo, que corresponde a 1901.

¿Cómo obtengo el timestamp actual en un programa?

En JavaScript Date.now() da milisegundos, en Python time.time() segundos con decimales, en una terminal Linux date +%s segundos enteros. El botón Ahora hace lo mismo aquí.

Cómo funciona este cálculo

Fecha UTC = epoch (1970-01-01 00:00:00 UTC) + timestamp ÷ unidad. La unidad automática es: segundos por debajo de 10^11, milisegundos por debajo de 10^14, microsegundos por debajo de 10^17 y nanosegundos en otro caso. A una fecha local se le resta la diferencia horaria vigente en esa fecha, horario de verano incluido. La semana ISO es la que contiene el jueves: la semana 1 contiene el primer jueves del año.