Conversor de marcas de tiempo Unix

Convierte marcas Unix en segundos o milisegundos a fechas, o una fecha a tiempo Unix. Consulta a la vez la hora UTC y la local.

Qué es una marca de tiempo Unix

Una marca de tiempo Unix es el número de segundos transcurridos desde las 00:00:00 UTC del 1 de enero de 1970, un instante conocido como la época Unix. El número no contiene ninguna zona horaria: en un instante dado es el mismo en cualquier lugar del mundo. Por eso resulta práctico para registros, bases de datos y API, que guardan un solo número y dejan a cada lector la presentación en hora local. La marca 1704067200, por ejemplo, es la medianoche UTC con la que empieza el 1 de enero de 2024.

¿Segundos o milisegundos?

Las marcas de tiempo de fechas actuales tienen 10 cifras en segundos y 13 en milisegundos. Date.now() de JavaScript y System.currentTimeMillis() de Java devuelven milisegundos; time() de PHP, el comando date +%s y la mayoría de las bases de datos trabajan en segundos. Confundirlos es el error más habitual con marcas de tiempo. Un valor en milisegundos leído como segundos cae decenas de miles de años en el futuro, y un valor en segundos leído como milisegundos cae en enero de 1970. Por eso este conversor te pide que elijas la unidad en lugar de adivinarla por la longitud del número.

Segundos intercalares, números negativos y el año 2038

El tiempo Unix trata cada día como exactamente 86.400 segundos. Los 27 segundos intercalares añadidos a UTC entre 1972 y 2016 no se cuentan, así que una marca de tiempo es una etiqueta para un momento del calendario y no un recuento exacto de segundos transcurridos. Los instantes anteriores a 1970 son negativos: -86400 es el 31 de diciembre de 1969. Los sistemas que guardan el valor como entero de 32 bits con signo se agotan a las 03:14:07 UTC del 19 de enero de 2038; los de 64 bits no tienen ese límite. El límite de 2038 explica qué se ve afectado.

Marcas de tiempo de referencia

Marca de tiempo (segundos) Fecha y hora (UTC) Qué marca
0 1970-01-01 00:00:00 La época Unix, donde empieza la cuenta
1000000000 2001-09-09 01:46:40 Mil millones de segundos, el primer valor de 10 cifras
1234567890 2009-02-13 23:31:30 Las cifras del 1 al 9 y el 0 en orden, celebradas entonces por los programadores
2000000000 2033-05-18 03:33:20 Dos mil millones de segundos
2147483647 2038-01-19 03:14:07 El mayor valor que cabe en un entero de 32 bits con signo

Obtener la marca de tiempo actual en segundos

JavaScript Math.floor(Date.now() / 1000)
Python int(time.time())
PHP time()
Bash date +%s
PostgreSQL SELECT EXTRACT(EPOCH FROM now())::bigint
MySQL SELECT UNIX_TIMESTAMP()

Preguntas y respuestas

¿Una marca de tiempo Unix está en UTC?

Se cuenta desde un instante definido en UTC, y el número en sí no tiene zona horaria. Para leerlo se elige una zona de presentación. El conversor muestra el resultado en UTC y en la hora local de tu dispositivo, uno junto al otro.

¿Por qué mi marca de tiempo da una fecha de 1970?

O bien el valor está en segundos y se ha leído como milisegundos, o bien es cero o está vacío donde se esperaba una hora real. Cambia la unidad a segundos y vuelve a convertir. Una fecha muy lejana en el futuro apunta al error contrario.

¿Qué significa la Z al final del resultado?

El resultado usa el formato ISO 8601, por ejemplo 2024-01-01T00:00:00.000Z. La T separa la fecha de la hora, y la Z indica que la hora está en UTC. Una fecha no es un instante explica por qué importa esa marca.

¿Qué intervalo de fechas se puede convertir?

Marcas de tiempo hasta 100 millones de días antes o después de la época, que es el límite de las fechas de JavaScript. Al convertir una fecha en marca de tiempo, el campo de fecha admite los años 0001 a 9999.

Los cálculos se realizan en tu navegador. No necesitas cuenta y tus datos no se envían a nuestro servidor. Descubre cómo funcionan nuestros relojes.

Artículos relacionados

Buscar ciudades y herramientas

Escribe para buscar · Esc para cerrar