S
SoSimple.tools
Herramientas de desarrollo y diseño

Conversor de timestamp Unix: epoch a fecha legible y viceversa

Pega un timestamp para leerlo como fecha, o elige una fecha para obtener su timestamp. La herramienta detecta segundos, milisegundos, microsegundos y nanosegundos y muestra UTC y la zona horaria que elijas

Funciona en tu navegador: lo que ingresas se queda en tu dispositivo

Timestamp y fecha

Solo dígitos; agrega un signo menos para fechas anteriores a 1970. Al editar un campo se actualiza el otro. Rango válido: unos ±8,64 × 10¹⁵ milisegundos alrededor de 1970.

Resultado de la conversión
UTC (ISO 8601)
2023-11-14T22:13:20Z
Detectado como segundos (cantidad de dígitos: 10)
Segundos
1700000000
Milisegundos
1700000000000
Microsegundos
1700000000000000
Nanosegundos
1700000000000000000
En la zona horaria elegida
martes, 14 de noviembre de 2023, 22:13:20 UTC
2023-11-14T22:13:20Z (UTC)
Formato RFC 2822 (UTC)
Tue, 14 Nov 2023 22:13:20 +0000
Día de la semana y día del año (UTC)
martes, día 318 del año

El tiempo Unix cuenta segundos desde 1970-01-01 00:00:00 UTC e ignora los segundos intercalares. La zona horaria solo cambia cómo se muestra el instante.

Compartir esta herramienta

Cómo usar esta herramienta

  1. Pega un timestamp Unix o presiona «Usar la hora actual». El campo de fecha se completa al instante.
  2. Deja la unidad en Auto, o elige segundos, milisegundos, microsegundos o nanosegundos.
  3. Elige una zona horaria y lee el resultado en UTC y en esa zona. Para ir en sentido contrario, edita la fecha y la hora y lee el timestamp en las cuatro unidades. Usa «Copiar resultado» para guardarlo.

Ejemplo práctico

El timestamp 1700000000 tiene 10 dígitos, así que se lee como segundos: 2023-11-14T22:13:20Z en UTC. En America/Sao_Paulo (UTC−03:00 ese día) el reloj marca las 19:13:20 de ese mismo martes, el día 318 de 2023. Agrega tres ceros, 1700000000000, y la herramienta detecta milisegundos y muestra el mismo instante. En sentido contrario, 2024-01-01 00:00:00 en UTC son 1704067200 segundos.

Metodología

El manual de Linux define el tiempo Unix como el número de segundos desde la Epoch, 1970-01-01 00:00:00 UTC, y dice que los sistemas Linux normalmente siguen el requisito de POSIX de que este valor ignore los segundos intercalares (página de manual time(2)). POSIX da la aritmética: cada día cuenta exactamente 86400 segundos, de modo que un timestamp son los días desde la Epoch por 86400 más los segundos transcurridos del día. JavaScript, que ejecuta esta herramienta, guarda el mismo instante como milisegundos desde la Epoch y admite valores de hasta ±8,64 × 10¹⁵ ms, del 20 de abril de 271821 a. C. al 13 de septiembre de 275760 d. C. (MDN). Las fechas se escriben en formato ISO 8601, con el perfil que define la RFC 3339, usando «Z» para UTC o un desfase como −03:00. Todo se ejecuta en tu navegador, y las reglas de zonas horarias salen de los datos del propio navegador, no de este sitio.

Fórmulas usadas: La detección de unidad cuenta los dígitos antes del punto decimal: hasta 11 son segundos, de 12 a 14 milisegundos, de 15 a 17 microsegundos y 18 o más nanosegundos. El valor se guarda exacto como un número entero de nanosegundos, así que los valores de 19 dígitos conservan todos sus dígitos. Milisegundos = nanosegundos ÷ 1.000.000, redondeado hacia abajo. El desfase de la zona es la diferencia entre la hora que el navegador indica para ese instante en la zona elegida y UTC. Con una fecha, la herramienta parte de la hora como si fuera UTC, resta el desfase de la zona alrededor de ese día y comprueba el resultado; si un cambio de hora lo vuelve ambiguo o imposible, lo indica.
Límites del método: Los valores pequeños son ambiguos: 1000 puede ser 1000 segundos o 1000 ms; Auto lo lee como segundos y puedes elegir Milisegundos para forzarlo. Las vistas por zona cubren los años 1 a 9999, y las fechas anteriores a 1970 dependen de los datos históricos de zonas del navegador, que pueden variar entre navegadores y versiones. Una hora que ocurre dos veces (los relojes se atrasan) se resuelve al instante anterior, y una que no existe (los relojes se adelantan) al instante posterior al salto. Los segundos intercalares no se modelan, así que no se puede ingresar 23:59:60. Después de 2038-01-19 03:14:07 UTC los valores ya no caben en un contador de segundos de 32 bits con signo; la herramienta lo avisa pero los convierte igualmente.

Cuatro errores con timestamps y cómo detectarlos

La mayoría de las fechas erróneas vienen de unas pocas causas repetidas. Revísalas antes de depurar otra cosa.

  • Segundos leídos como milisegundos, o al revés. 1700000000 tomado como milisegundos es 1970-01-20, solo 19 días después de la Epoch, y 1700000000000 tomado como segundos cae en el año 55840. Una fecha cercana a 1970 o en un futuro lejano suele indicar la unidad equivocada.
  • Confundir hora local y UTC. Un timestamp es un instante; la hora del reloj depende de la zona. 1700000000 son las 22:13:20 en UTC y las 19:13:20 en São Paulo, y ambas son correctas.
  • Guardar segundos en un entero de 32 bits con signo. El valor máximo, 2147483647, es 2038-01-19 03:14:07 UTC, y el mínimo, −2147483648, es 1901-12-13 20:45:52 UTC. La página de manual time(2) aconseja un time_t más ancho para el software que deba funcionar después de 2038.
  • Esperar segundos intercalares. El tiempo Unix cuenta cada día como 86400 segundos, así que sumar 86400 a un timestamp da siempre la misma hora UTC un día después.

Herramientas relacionadas

Preguntas frecuentes

¿Qué es un timestamp Unix? ▼

Es el número de segundos desde 1970-01-01 00:00:00 UTC, la Epoch de Unix, sin contar los segundos intercalares. Por ejemplo, 1700000000 es 2023-11-14T22:13:20Z. Al ser un solo número para un solo instante, es fácil de guardar, ordenar y comparar, y no depende de una zona horaria ni de un formato de fecha.

¿Cómo sé si un timestamp está en segundos o en milisegundos? ▼

Cuenta los dígitos. Los timestamps de fechas cercanas a hoy tienen 10 dígitos en segundos, 13 en milisegundos, 16 en microsegundos y 19 en nanosegundos. El modo Auto aplica esa regla y muestra lo que ha detectado. Los números muy pequeños, como 1000, son ambiguos; elige tú la unidad si la conoces.

¿Qué pasa en 2038? ▼

2147483647 segundos, 2038-01-19 03:14:07 UTC, es el mayor valor de un entero de 32 bits con signo. El software que guarda segundos en 32 bits no puede contener el siguiente segundo y puede dar la vuelta a una fecha de 1901. El manual de Linux aconseja un time_t más ancho para el software que deba funcionar después de 2038. Esta herramienta usa números mayores, así que solo te avisa.

¿Tiene zona horaria un timestamp Unix? ▼

No. Identifica un único instante para todos los habitantes de la Tierra. La zona horaria solo decide qué hora del reloj muestras para ese instante: 1700000000 son las 22:13:20 UTC y las 19:13:20 en America/Sao_Paulo. Cuando editas el campo de fecha, la herramienta lo lee en la zona elegida.

¿El tiempo Unix incluye segundos intercalares? ▼

No. POSIX cuenta cada día como exactamente 86400 segundos y Linux sigue esa regla, de modo que el contador no se mueve por un segundo intercalar. Sumar 86400 a un timestamp da por eso siempre la misma hora UTC un día después, y esta herramienta no puede mostrar 23:59:60.