Tiempo y fechas

Conversor de marca de tiempo Unix

Convierte una marca de tiempo Unix a una fecha y hora legibles en UTC y hora local, o pasa una fecha de nuevo a una marca epoch.

Una marca de tiempo Unix cuenta segundos enteros desde el 1 de enero de 1970 UTC. Si tu valor tiene 13 dígitos está en milisegundos, así que divide primero entre 1000.

Cómo la hora Unix se convierte en fecha

Una marca de tiempo Unix es el número de segundos transcurridos desde las 00:00:00 UTC del 1 de enero de 1970, conocido como el epoch. Para convertirla en una fecha, la calculadora divide entre 86.400 (los segundos de un día) para hallar el día, y luego usa el resto para las horas, minutos y segundos, todo medido en UTC. Por ejemplo, 1.700.000.000 segundos son el 14 de noviembre de 2023 a las 22:13:20 UTC. En sentido contrario, cuenta los segundos enteros desde el epoch hasta la fecha y hora que introduces. Los segundos intercalares se ignoran, lo que coincide con cómo casi todos los sistemas operativos y bases de datos guardan el valor.

El resultado se muestra en UTC y en la hora local de tu navegador, que puede caer en un día natural distinto si estás muchas horas por delante o por detrás de Greenwich. La línea ISO 8601 (por ejemplo 2023-11-14T22:13:20Z) es la forma escrita inequívoca, con la Z final que significa Zulú, o UTC.

Marca (segundos)Fecha y hora UTCNota
01970-01-01 00:00:00El epoch
10000000002001-09-09 01:46:40Mil millones de segundos
17000000002023-11-14 22:13:20Valor de ejemplo
21474836472038-01-19 03:14:07Límite de 32 bits con signo

Segundos, milisegundos y el problema del año 2038

El error más común es confundir segundos y milisegundos. La mayoría de los sistemas de backend guardan segundos, pero Date.now() de JavaScript y muchos registros usan milisegundos, que son 1.000 veces mayores y tienen 13 dígitos en lugar de 10 para fechas cercanas a hoy. Si una fecha convertida cae en un futuro lejano, probablemente hayas pegado un valor en milisegundos en un campo de segundos. Los sistemas que guardan la marca en un entero con signo de 32 bits se quedan sin espacio a las 03:14:07 UTC del 19 de enero de 2038, el punto mostrado en la tabla; es el problema del año 2038, y los sistemas modernos lo evitan usando un entero de 64 bits, que empuja el límite a unos 292.000 millones de años.

Preguntas frecuentes

¿Una marca de tiempo Unix está en segundos o milisegundos?

Por convención son segundos enteros desde 1970. Los milisegundos los usan JavaScript y algunas API y son 1.000 veces mayores, así que un valor actual tiene 13 dígitos en vez de 10. Divide entre 1.000 para obtener segundos.

¿Qué zona horaria usa una marca de tiempo Unix?

Ninguna en sí misma; marca un único instante en UTC. La misma marca se muestra como horas de reloj distintas por todo el mundo, por eso esta herramienta muestra tanto el UTC como tu hora local.

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

Las marcas guardadas como enteros con signo de 32 bits se desbordan en 2.147.483.647 segundos, que es el 19 de enero de 2038. Después se envuelven a un número negativo. Un entero de 64 bits elimina el límite a efectos prácticos.