Saltar al contenido

Conversor de timestamp Unix

Convierte timestamps Unix en fechas y al revés. Detecta s, ms, µs y ns, y muestra ISO 8601 por zona horaria y la hora Unix actual.

Hora Unix actual

  • Segundos (s)
  • Milisegundos (ms)

En automático se deduce por el número de cifras (10 = segundos, 13 = milisegundos).

Resultado

Introduce un timestamp para verlo como fecha y hora.

p. ej., 1700000000 → 14 de noviembre de 2023, 22:13:20 UTC

Lo que introduces se procesa solo en este navegador y nunca se envía a un servidor. Cómo funciona

La marca de tiempo Unix 1704067200 segundos se convierte en 2024-01-01 a las 00:00:00 UTC

Cómo usarlo

Arriba del todo ves la hora Unix actual en segundos y milisegundos, actualizada cada segundo. Con el botón de copiar que hay al lado la copias al momento.

En la pestaña Timestamp → fecha, pega un número y verás la fecha, el día de la semana y la hora en la zona horaria que elijas, además de cuánto tiempo hace (o falta). Debajo aparecen la unidad detectada y el valor en segundos y milisegundos, y a continuación ISO 8601 (en UTC y en la zona horaria elegida) y el formato de fecha HTTP (RFC 9110), cada uno con su botón de copiar. Si la zona horaria elegida no es la de tu dispositivo, se muestra también la hora de tu dispositivo, y la fecha HTTP solo aparece para los años 0 a 9999. La lista incluye todas las zonas horarias IANA que conoce tu navegador (Europe/Madrid, Asia/Tokyo, etc.), y al principio está seleccionada la de tu dispositivo. La hora actual y la zona horaria se leen del reloj de tu dispositivo y de la configuración del navegador.

En la pestaña Fecha → timestamp, introduce una fecha y una hora (hasta los segundos), elige a qué zona horaria corresponde y obtendrás el timestamp en segundos y milisegundos.

Qué es el tiempo Unix

El tiempo Unix (también llamado tiempo epoch o tiempo POSIX) es el número de segundos transcurridos desde 1970-01-01T00:00:00Z (UTC). El estándar POSIX lo define como «Seconds Since the Epoch» y cuenta siempre cada día como 86.400 segundos. Así que no cuenta los segundos intercalares: un día con segundo intercalar sigue teniendo 86.400 segundos en tiempo Unix. Eso simplifica los cálculos de fechas, pero hace que el tiempo Unix se aleje de los segundos realmente transcurridos en tantos segundos como segundos intercalares ha habido. Por la misma razón, esta herramienta nunca muestra una hora con segundo intercalar (23:59:60). Al convertir un timestamp en fecha, los segundos van siempre de 0 a 59, y en la pestaña Fecha → timestamp no se pueden introducir 60 segundos.

Un timestamp señala un único instante, así que no depende de la zona horaria. El mismo instante tiene el mismo timestamp en Madrid y en Nueva York; la zona horaria solo hace falta para convertirlo en hora de reloj. Si cambias la zona horaria en la pestaña Timestamp → fecha, cambian la fecha y la hora y la línea ISO 8601 de esa zona; los valores en segundos y milisegundos, ISO 8601 (UTC) y la fecha HTTP siguen igual. En la pestaña Fecha → timestamp ocurre lo contrario: la misma fecha y hora da un timestamp distinto si eliges una zona horaria con otro desfase respecto a UTC.

Cómo distinguir segundos, milisegundos, microsegundos y nanosegundos

El mismo instante tiene más o menos cifras según la unidad. Para fechas de la década de 2020 lo habitual es:

  • Segundos: 10 cifras (1700000000) — int(time.time()) de Python, funciones de PostgreSQL y MySQL
  • Milisegundos: 13 cifras (1700000000000) — Date.now() de JavaScript
  • Microsegundos: 16 cifras — algunas bases de datos y registros
  • Nanosegundos: 19 cifras — lenguajes y registros con relojes de alta resolución

La detección automática se basa en el número de cifras de la parte entera sin contar los ceros iniciales: hasta 11 cifras, segundos; de 12 a 14, milisegundos; de 15 a 17, microsegundos; 18 o más, nanosegundos. Si un valor tiene menos cifras de lo normal, como una hora anterior a marzo de 1973 escrita en milisegundos, elige la unidad tú. Las cifras por debajo del milisegundo (en valores en microsegundos o nanosegundos, o escritas como decimales) se recortan al mostrar la fecha.

Un Date de JavaScript abarca 8,64 × 10¹⁵ milisegundos (100 millones de días, unos 270.000 años) antes y después de 1970, es decir, de -271821-04-20T00:00:00Z a +275760-09-13T00:00:00Z. Los valores fuera de ese intervalo se indican como error de rango.

Obtener el timestamp actual en código

// JavaScript: segundos (Date.now() devuelve milisegundos)
Math.floor(Date.now() / 1000)
# Python: segundos (time.time() devuelve segundos con decimales)
import time; int(time.time())
-- PostgreSQL
SELECT EXTRACT(EPOCH FROM now());
-- MySQL
SELECT UNIX_TIMESTAMP();

Zonas horarias y horario de verano

Al convertir una fecha en timestamp en una zona horaria con horario de verano hay dos casos especiales. El día en que empieza, el reloj se adelanta y algunas horas no existen (por ejemplo, 2026-03-08 02:30 en Nueva York). El día en que termina, la misma hora se repite (por ejemplo, 2026-11-01 01:30 en Nueva York). Para una hora que no existe, la herramienta usa el desfase anterior al cambio, así que la hora aparece más tarde; para una hora repetida, elige la primera. En ambos casos aparece un aviso encima del resultado.

Fuentes

Preguntas frecuentes

¿Por qué da error al pegar un número con comas o un valor como 1.7e9?

Porque el campo del timestamp solo lee cifras, un signo al principio (+ o -) y un único punto decimal. Un valor agrupado con comas o espacios como 1,700,000,000, la notación exponencial como 1.7e9, un número hexadecimal que empieza por 0x, un valor con letras añadidas como 1700000000s y una coma decimal como en 1700000000,5 dan todos el error «Introduce solo cifras». Quita los separadores y las letras para dejar solo el número, como 1700000000. Tiene que haber una cifra a cada lado del punto decimal, así que escribe 0.5 en lugar de .5. Los espacios antes y después del valor se ignoran, así que puedes dejarlos, y un valor con ceros iniciales como 0001700000000 se lee tal cual.

¿Qué reviso si la fecha sale en 1970 o miles de años en el futuro?

Si lees un valor en la unidad equivocada, la fecha se va muy lejos. Con Unidad en Milisegundos (ms), 1700000000 da 1970-01-20T16:13:20Z; con Segundos (s), 1700000000000 da +055840-11-08T22:13:20Z. Si un resultado cae en enero de 1970 o decenas de miles de años más adelante, vuelve a poner Unidad en Automático o elige la que corresponde al valor. Un valor con decimales como 1700000000.5 se detecta como segundos, porque solo se cuentan las cifras anteriores al punto, y en milisegundos da 1700000000500.

¿Se pueden usar timestamps negativos?

Sí. Pon un signo menos delante del número y se convierte en un instante anterior a 1970-01-01T00:00:00Z: -86400 es un día antes, 1969-12-31T00:00:00Z. La detección automática no tiene en cuenta el signo y solo cuenta las cifras, así que -1700000000000 se lee como milisegundos y da 1916-02-18T01:46:40Z. En los negativos con decimales, el valor en segundos no se redondea hacia cero, sino hacia el instante anterior: con -0.5, Milisegundos muestra -500 y Segundos muestra -1. La pestaña Fecha → timestamp también devuelve un número negativo para las fechas anteriores a 1970: con Zona horaria en UTC, 1969-12-31 00:00:00 da -86400.

El texto «hace 3 años» que aparece debajo de la fecha no parece coincidir con la diferencia real entre las fechas. ¿Cómo se calcula?

No se cuenta sobre el calendario: es una aproximación que divide la diferencia respecto a ahora entre duraciones fijas. Si la diferencia es de menos de 1 minuto se muestra en segundos; de menos de 1 hora, en minutos; de menos de 24 horas, en horas, y de menos de 30 días, en días. Por debajo de 365 días, un mes cuenta como 30 días; a partir de 365 días, un año cuenta como 365 días, y el resto se descarta. Por eso, 364 días atrás aparece como «hace 12 meses», y 1459 días atrás, un día menos que 4 × 365 días, como «hace 3 años». Para la fecha exacta, mira la fecha y la hora que hay encima o las líneas ISO 8601.

En una fecha antigua como 1900, el desfase respecto a UTC aparece con segundos, por ejemplo +08:27:52. ¿Es un error?

No. La herramienta no decide el desfase por su cuenta: toma el valor que dan los datos de zonas horarias de tu navegador para ese instante y lo usa sin redondear. En esos datos, algunas zonas horarias tienen para épocas antiguas un desfase que no es un número exacto de horas y minutos. Por ejemplo, con Zona horaria en Asia/Seoul y el valor -2208988800 (1900-01-01T00:00:00Z), la línea ISO 8601 (Asia/Seoul) muestra el desfase +08:27:52. La pestaña Fecha → timestamp calcula con el mismo desfase, así que 1900-01-01 00:00:00 en Asia/Seoul da -2209019272 (con UTC da -2208988800). El resultado puede variar según los datos de zonas horarias de tu navegador.

¿Puedo convertir fechas posteriores a 2038?

Si el tiempo Unix se guarda en un entero de 32 bits con signo (en sistemas donde time_t es de 32 bits), el valor máximo es 2147483647. Eso es 2038-01-19T03:14:07Z, y un segundo después el valor se desborda a -2147483648, es decir, 1901-12-13T20:45:52Z. Los sistemas operativos actuales con time_t de 64 bits no tienen problema, pero los programas que guardan timestamps en columnas o campos de archivo de enteros de 32 bits, y los dispositivos embebidos antiguos, siguen afectados. Esta herramienta no usa enteros de 32 bits, así que convierte tal cual los valores que quedan fuera de ese rango. En la pestaña Timestamp → fecha, si el valor convertido a segundos queda fuera del rango de -2147483648 a 2147483647, la herramienta te avisa debajo del resultado. En la pestaña Fecha → timestamp no aparece ese aviso, así que comprueba tú si el resultado entra en ese rango.

Última actualización: