Informática
Conversor de timestamp Unix (epoch) a fecha y viceversa
Pega un timestamp y lee al instante la fecha en UTC y en tu hora local, o escribe una fecha y obtén los segundos desde el epoch. La unidad se deduce del número de cifras.
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.
Cálculos relacionados
Generador de hash
MD5, SHA-1, SHA-256, SHA-384 y SHA-512 de un texto o de bytes, con verificación de un hash.
Seguridad de contraseñas
Entropía en bits y tiempo para adivinarla, con los patrones débiles detectados. Nada sale del navegador.
Conversor Base64
De texto, entero, hexadecimal o binario a Base64 y viceversa, con los grupos de 6 bits explicados.
Conversor de colores
De HEX a RGB, HSL, HSV y CMYK y viceversa, con el contraste WCAG de texto blanco y negro.