Conversor de marcas de tiempo Unix
Convierte entre marcas de tiempo Unix y fechas legibles en cualquier zona horaria, con precisión de milisegundos.
Cargando Conversor de marcas de tiempo Unix… Si no ocurre nada, activa JavaScript.
La marca de tiempo Unix (Unix timestamp) es un único número entero que cuenta los segundos transcurridos desde el 1 de enero de 1970, 00:00:00 UTC, un momento conocido como la época Unix (Unix Epoch). Este sistema lo establecieron los primeros desarrolladores de Unix en Bell Labs porque necesitaban una forma compacta y neutral respecto a la zona horaria de representar instantes de tiempo entre máquinas conectadas en red. La elección de 1970 fue en gran medida práctica: era un año reciente y redondo que caía cómodamente dentro del rango de los enteros de 32 bits, y los primeros sistemas Unix se estaban desarrollando en esa época. Hoy, la marca de tiempo Unix es el lenguaje universal del tiempo para prácticamente todos los sistemas operativos, bases de datos, API y lenguajes de programación del planeta.
Ejemplos
1700000000
2023-11-14 22:13:20 UTC
Segundos de la época Unix a una fecha UTC legible.
2024-01-01 00:00:00 UTC
1704067200
Y a la inversa: una fecha UTC a segundos de la época.
Preguntas frecuentes
¿Se envía algún dato a un servidor cuando uso esta herramienta?
¿Por qué la época Unix empieza el 1 de enero de 1970?
¿Qué es el problema Y2K38?
¿Cuál es la diferencia entre las marcas de tiempo en segundos y en milisegundos?
¿Cómo evito la pérdida de precisión al trabajar con marcas de tiempo?
¿Qué es ISO 8601 y por qué debería usarlo?
¿Puedo convertir fechas anteriores a 1970?
¿Cómo funciona la conversión de zonas horarias?
¿Qué valores de marca de tiempo conviene memorizar?
¿Una marca de tiempo Unix incluye información de zona horaria?
Acerca de Conversor de marcas de tiempo Unix
Los desarrolladores se topan con marcas de tiempo Unix constantemente: los tokens JWT llevan un campo exp (expiración) en segundos de la época, las cabeceras HTTP las usan para el control de caché, los esquemas de bases de datos almacenan los tiempos de los eventos como enteros para un indexado rápido, los sistemas de agregación de logs como Elasticsearch indexan marcas de tiempo para consultas por rangos y las apps móviles sincronizan el estado entre dispositivos usando vectores de cambio basados en la época. Los científicos y los analistas de datos usan marcas de tiempo para alinear conjuntos de datos de series temporales de distintas fuentes. Incluso los usuarios corrientes se encuentran con ellas en las URL web, los metadatos de archivos y los campos de caducidad de las cookies, a menudo sin darse cuenta.
Esta herramienta convierte entre marcas de tiempo Unix sin procesar y cadenas de fecha legibles enteramente dentro de tu navegador. Ningún dato se envía jamás a un servidor. Puedes pegar una marca de tiempo de 10 dígitos con precisión de segundos o una de 13 dígitos con precisión de milisegundos; la herramienta detecta el formato automáticamente. También muestra la marca de tiempo actual en vivo, te permite elegir cualquier zona horaria IANA desde un desplegable con búsqueda y muestra la fecha tanto en ISO 8601 como en un formato localizado para una lectura rápida.
Unos cuantos casos límite importantes que conviene tener en cuenta: el objeto Date de JavaScript trabaja en milisegundos, así que divide siempre entre 1000 al comparar con una API basada en segundos. Las marcas de tiempo negativas representan fechas anteriores a 1970 y son totalmente compatibles. El problema Y2K38 es un asunto que se avecina para los sistemas que almacenan las marcas de tiempo como un entero con signo de 32 bits: tales sistemas desbordarán el 19 de enero de 2038 a las 03:14:07 UTC, dando la vuelta a una fecha de 1901. La mayoría de los sistemas modernos de 64 bits son inmunes, pero el hardware embebido y las bases de datos heredadas todavía pueden estar en riesgo. Cuando trabajes entre zonas horarias, almacena y transmite siempre las marcas de tiempo en UTC y conviértelas a la hora local solo para mostrarlas.
De Bell Labs a todos los dispositivos de la Tierra: la historia de la época Unix
El sistema operativo Unix nació a finales de la década de 1960 en los Bell Labs de AT&T, creado por Ken Thompson, Dennis Ritchie y sus colegas. Cuando necesitaron una forma de registrar los tiempos de modificación de los archivos y programar procesos, idearon el sistema de marcas de tiempo basado en la época. La fecha concreta del 1 de enero de 1970 no se eligió por ninguna razón grandiosa: fue simplemente un número redondo cercano a cuando se estaba construyendo el sistema, y encajaba bien en los enteros de 32 bits que eran el límite práctico del hardware de la época.
La limitación de la marca de tiempo de 32 bits es la raíz del problema del año 2038, a veces llamado Y2K38 o el bug del milenio Unix. Un entero con signo de 32 bits alcanza su máximo en 2.147.483.647, que corresponde a las 03:14:07 UTC del 19 de enero de 2038. Después de ese segundo, el contador se desborda a -2.147.483.648, que se corresponde con el 13 de diciembre de 1901. Los ingenieros llevan años corrigiendo esto en silencio: el núcleo de Linux pasó a marcas de tiempo de 64 bits, y la mayoría de las bases de datos y lenguajes modernos han seguido el ejemplo. Sin embargo, miles de millones de dispositivos embebidos, controladores industriales y sistemas heredados puede que nunca reciban actualizaciones.
JavaScript tomó el concepto de la época y lo multiplicó por 1.000, trabajando en milisegundos en lugar de segundos, ya que el lenguaje se diseñó para interfaces web interactivas donde la temporización por debajo del segundo importa. Por eso Date.now() devuelve un número de 13 dígitos. Otros lenguajes tomaron decisiones diferentes: time.time() de Python devuelve un valor de segundos en coma flotante, time.UnixNano() de Go trabaja en nanosegundos, y las bases de datos SQL suelen almacenar las marcas de tiempo como cadenas formateadas, todo ello refiriéndose al mismo concepto subyacente que dos programadores improvisaron en Bell Labs hace más de medio siglo.