Conversor de marca de tiempo Unix

Convierte entre marcas de tiempo Unix (segundos o milisegundos desde la época) y fechas legibles. Compatible con varias zonas horarias, relleno instantáneo de la hora actual y tiempo relativo, pensado para desarrolladores.

Conceptos básicos de la marca de tiempo Unix

Una marca de tiempo Unix representa una fecha y hora como el número de segundos transcurridos desde las 00:00:00 UTC del 1 de enero de 1970 (la época Unix). A continuación se muestra una tabla con valores conocidos y las fechas que representan.

Timestamp (segundos) Fecha y hora UTC Nota
0 1970-01-01T00:00:00Z La época Unix (el punto de partida de todas las marcas de tiempo)
1000000000 2001-09-09T01:46:40Z El momento en que la marca de tiempo alcanzó los mil millones de segundos (el "Unix Billennium")
1234567890 2009-02-13T23:31:30Z Un valor que se hizo curioso por contener los dígitos del 1 al 9 en orden
2147483647 2038-01-19T03:14:07Z El problema del año 2038: el valor máximo de un entero de 32 bits con signo (se desborda un segundo después)

Consejos de uso

  • Un valor de 10 dígitos suele estar en segundos, mientras que uno de 13 dígitos suele estar en milisegundos. Selecciona "Detección automática" para que se infiera la unidad según el número de dígitos.
  • Pega directamente una marca de tiempo de un registro de servidor o de una respuesta de API para comprobar de una sola vez su hora equivalente en varias zonas horarias.
  • Al convertir una fecha a marca de tiempo, asegúrate de seleccionar explícitamente a qué zona horaria pertenece la fecha y hora introducidas.
  • El formato ISO 8601 (UTC) puede analizarse directamente en la mayoría de los lenguajes de programación y bases de datos, lo que resulta útil al buscar en registros o diseñar una API.
  • Haz clic en "Rellenar hora actual" para completar instantáneamente el campo con la hora actual obtenida del Date.now() del navegador.

Preguntas frecuentes

Una marca de tiempo Unix (tiempo de época) expresa una fecha y hora como el número de segundos transcurridos desde las 00:00:00 UTC del 1 de enero de 1970 (la época Unix). Como representa un instante mediante un único número independiente de la zona horaria, se utiliza ampliamente como forma estándar de intercambiar fechas y horas entre sistemas informáticos, como registros de servidor, bases de datos y APIs.

El problema del año 2038 se refiere a un fallo en los sistemas que almacenan marcas de tiempo Unix como enteros de 32 bits con signo: un segundo después de las 03:14:07 UTC del 19 de enero de 2038 (el valor máximo, 2.147.483.647), el valor se desborda y la fecha representada retrocede hasta alrededor de 1901. La mayoría de los sistemas modernos usan enteros de 64 bits y no se ven afectados, pero los dispositivos embebidos y los sistemas antiguos aún pueden estar en riesgo.

Una marca de tiempo que representa la era actual (de los años 2020 a 2030) suele tener unos 10 dígitos si está en segundos, o unos 13 dígitos si está en milisegundos. El modo "Detección automática" de esta herramienta usa esa diferencia de dígitos para adivinar la unidad, pero consultar la especificación de los datos originales o la documentación de la API es la forma más fiable de estar seguro.

No existe una única razón documentada de forma definitiva, pero suele atribuirse a que Unix se desarrolló alrededor de 1969-1970 y a que ese año redondo resultaba conveniente dadas las limitaciones de memoria de los ordenadores de la época. Esta fecha pasó a conocerse como la "época Unix" y desde entonces se ha convertido en un estándar de facto seguido por casi todos los lenguajes de programación y sistemas operativos.

Un valor negativo representa una fecha y hora anteriores al 1 de enero de 1970. Por ejemplo, la marca de tiempo -86400 corresponde a las 00:00:00 UTC del 31 de diciembre de 1969. Los sistemas que manejan fechas históricas o fechas de nacimiento anteriores a 1970 a veces utilizan marcas de tiempo negativas.
ツールくん

A propósito — ¿Por qué las computadoras cuentan el tiempo en segundos?

Los humanos expresamos las fechas y horas combinando año, mes, día y hora del día, como "12 de julio de 2026, 17:08". Para una computadora, sin embargo, este formato resulta incómodo: hay que tener en cuenta reglas complejas como los años bisiestos, las zonas horarias y el horario de verano, e incluso calcular la diferencia entre dos fechas se convierte en una operación engorrosa. La solución ideada fue representar el tiempo con un único número: los segundos transcurridos desde un instante de referencia. Esto es exactamente lo que hace una marca de tiempo Unix.

La mayor ventaja de representar el tiempo como un único entero es que comparar fechas y calcular diferencias entre ellas se reduce a una simple aritmética. Averiguar "cuántos segundos separan estos dos eventos" es solo cuestión de restar una marca de tiempo de otra, sin preocuparse por los años bisiestos ni por la duración variable de los meses. Gracias a esta simplicidad, el formato fue adoptado no solo por los sistemas tipo Unix, sino también por Windows, las bases de datos y las representaciones internas de muchos lenguajes de programación, convirtiéndose en un estándar de facto a nivel mundial.

Por otro lado, este diseño de un único número independiente de la zona horaria implica que la conversión de zona horaria solo se vuelve necesaria cuando un humano necesita leer el valor. Una misma marca de tiempo puede parecer plena madrugada en Tokio y la tarde del día anterior en Nueva York, según la zona horaria en la que se muestre. Muchos de los confusos errores de "la hora no coincide" que aparecen al investigar registros o depurar integraciones de API se deben precisamente a este tipo de conversión de zona horaria pasada por alto.