EpochConvert
Tiempo Unix (segundos)
Tiempo Unix (milisegundos)
Hora UTC

Conversor de Marca de Tiempo Unix

Convierte marcas de tiempo de época a fechas legibles — o cualquier fecha a su marca de tiempo Unix. Reloj en vivo, fragmentos de código en 8 lenguajes, conversor por lotes.

Época → Fecha legible
Fecha legible → Época
Fragmentos de código
Conversor por lotes

Pega varias marcas de tiempo (una por línea). Admite segundos y milisegundos mezclados.

¿Qué es una marca de tiempo Unix?

Una marca de tiempo Unix — también conocida como tiempo de época, tiempo POSIX o tiempo Unix — es el número de segundos transcurridos desde la época Unix: el 1 de enero de 1970 a las 00:00:00 en Tiempo Universal Coordinado (UTC). Es un concepto fundamental en informática que se usa para representar instantes en el tiempo en un formato independiente de la zona horaria, del lenguaje y perfectamente adecuado para operaciones aritméticas.

¿Por qué segundos desde 1970?

La época Unix fue elegida por los primeros desarrolladores de Unix a principios de los 70 como punto de referencia. Aunque la elección fue en cierta medida arbitraria, 1970 estaba cerca del momento en que se desarrolló Unix y ofrecía números redondos para las marcas de tiempo de la época. El formato se convirtió en un estándar mundial gracias a la influencia de Unix en todos los sistemas operativos posteriores.

Segundos frente a milisegundos

La especificación original de marca de tiempo Unix usa segundos, pero los lenguajes de programación y las API modernas suelen usar milisegundos para mayor precisión. Una forma rápida de distinguirlos: un número de 10 dígitos son segundos (ej. 1718000000); un número de 13 dígitos son milisegundos (ej. 1718000000000). Este conversor detecta el formato automáticamente.

El problema del año 2038

Los enteros con signo de 32 bits pueden almacenar un valor máximo de 2.147.483.647, que corresponde al 19 de enero de 2038 a las 03:14:07 UTC. Los sistemas que almacenan marcas de tiempo Unix como enteros con signo de 32 bits desbordarán en esa fecha y pasarán a un número negativo muy grande. Los sistemas modernos de 64 bits pueden representar marcas de tiempo hasta aproximadamente el año 292.277.026.596 d. C., por lo que esto solo afecta a sistemas embebidos heredados y software antiguo que todavía no ha migrado a almacenamiento de tiempo de 64 bits.

Preguntas frecuentes

  • Una marca de tiempo Unix (también llamada tiempo de época) es el número de segundos transcurridos desde el 1 de enero de 1970 a las 00:00:00 UTC. Es una forma universal e independiente de la zona horaria de representar un instante en el tiempo, utilizada en prácticamente todos los lenguajes de programación y sistemas operativos.
  • Una marca de tiempo de 10 dígitos está en segundos (ej. 1718000000 = junio de 2024). Una de 13 dígitos está en milisegundos (ej. 1718000000000). Este conversor detecta el formato automáticamente en función del número de dígitos y la magnitud del valor.
  • La marca de tiempo Unix del 1 de enero de 2000 a las 00:00:00 UTC es 946684800.
  • El 19 de enero de 2038 a las 03:14:07 UTC, las marcas de tiempo Unix almacenadas como enteros con signo de 32 bits desbordarán desde el valor máximo (2.147.483.647) a un número negativo. Los sistemas modernos de 64 bits no se ven afectados, pero los sistemas embebidos y el software heredado pueden requerir actualizaciones.
  • ISO 8601 es un estándar internacional para la representación de fechas y horas. Una marca de tiempo típica tiene este aspecto: 2024-06-10T14:30:00Z (Z significa UTC) o 2024-06-10T14:30:00+05:30 (con desplazamiento UTC). Es el formato recomendado para API e intercambio de datos.
  • Usa Math.floor(Date.now() / 1000) para segundos, o Date.now() para milisegundos. También puedes usar new Date().getTime(), que devuelve milisegundos.