BrowserTools
Publicidad
Inicio / Conversores / Conversor de marcas de tiempo Unix

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

Entrada 1700000000
Salida 2023-11-14 22:13:20 UTC

Segundos de la época Unix a una fecha UTC legible.

Entrada 2024-01-01 00:00:00 UTC
Salida 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?
No. Todas las conversiones se ejecutan enteramente en tu navegador usando JavaScript. Tus marcas de tiempo y fechas nunca salen de tu dispositivo, lo que hace que esta herramienta sea segura para usar con datos sensibles de producción o logs privados.
¿Por qué la época Unix empieza el 1 de enero de 1970?
El sistema operativo Unix se desarrolló en Bell Labs a finales de la década de 1960 y principios de la de 1970. Los desarrolladores necesitaban un punto de referencia fijo para llevar el tiempo, y 1970-01-01 00:00:00 UTC se eligió como un ancla cómoda y reciente que encajaba holgadamente dentro de las restricciones de almacenamiento del hardware disponible en aquel momento. Fue una decisión pragmática más que una con un significado profundo.
¿Qué es el problema Y2K38?
Los sistemas que almacenan las marcas de tiempo Unix como un entero con signo de 32 bits solo pueden representar valores hasta 2.147.483.647, que corresponde al 19 de enero de 2038, 03:14:07 UTC. Después de ese momento, el entero se desborda y vuelve a un número negativo grande, lo que puede provocar que los cálculos de fechas fallen. Los sistemas modernos de 64 bits no se ven afectados, pero los dispositivos embebidos heredados, las bases de datos antiguas y ciertos sistemas de archivos todavía pueden ser vulnerables.
¿Cuál es la diferencia entre las marcas de tiempo en segundos y en milisegundos?
Una marca de tiempo Unix estándar está en segundos y tiene 10 dígitos para las fechas de la era actual (p. ej., 1700000000). El método Date.now() de JavaScript y muchas API web devuelven milisegundos, que añaden tres dígitos extra (p. ej., 1700000000000). Esta herramienta detecta automáticamente qué formato pegaste según el número de dígitos, pero puedes anularlo manualmente si lo necesitas.
¿Cómo evito la pérdida de precisión al trabajar con marcas de tiempo?
Los números de coma flotante en JavaScript (dobles IEEE-754) solo pueden representar con seguridad enteros hasta 2^53 - 1. Las marcas de tiempo en milisegundos se mantienen holgadamente dentro de este rango para las fechas hasta el año 275.760, así que la precisión no es una preocupación en la práctica. Sin embargo, si trabajas con marcas de tiempo con precisión de nanosegundos de lenguajes como Go o Rust, ten en cuenta que JavaScript perderá precisión más allá de los 16 dígitos significativos.
¿Qué es ISO 8601 y por qué debería usarlo?
ISO 8601 es un estándar internacional para representar fechas y horas como cadenas, por ejemplo 2025-12-31T23:59:59Z. A diferencia de los formatos específicos de cada configuración regional, como 12/31/2025 o 31.12.2025, ISO 8601 es inequívoco, ordenable como texto plano y comprendido por el analizador de fechas de prácticamente todos los lenguajes de programación. Es el formato recomendado para API, archivos de log e intercambio de datos.
¿Puedo convertir fechas anteriores a 1970?
Sí. Las marcas de tiempo Unix negativas representan fechas anteriores a la época. Por ejemplo, -86400 corresponde al 31 de diciembre de 1969, 00:00:00 UTC. Esto es totalmente compatible con la herramienta y con la mayoría de los entornos de programación modernos, aunque algunos sistemas y bases de datos más antiguos pueden rechazar los valores de marca de tiempo negativos.
¿Cómo funciona la conversión de zonas horarias?
La herramienta usa la API integrada Intl.DateTimeFormat del navegador con nombres de zona horaria IANA (como America/New_York o Asia/Tokyo). Todos los cálculos se hacen internamente en UTC; la configuración de zona horaria solo afecta a la salida que se muestra. Esto significa que el valor de la marca de tiempo subyacente siempre es inequívoco, independientemente de la zona horaria que selecciones para visualizar.
¿Qué valores de marca de tiempo conviene memorizar?
Unos cuantos puntos de referencia son útiles de saber: 0 es 1970-01-01, 1000000000 (mil millones) fue el 9 de septiembre de 2001, 1500000000 fue el 14 de julio de 2017, y el punto de desbordamiento Y2K38 es 2147483647. En milisegundos, Date.now() es siempre un número de 13 dígitos que empieza por 1 en la década actual.
¿Una marca de tiempo Unix incluye información de zona horaria?
No. Una marca de tiempo Unix es siempre un recuento de segundos desde 1970-01-01 00:00:00 UTC y es inherentemente agnóstica respecto a la zona horaria. La información de zona horaria es puramente una cuestión de visualización. Esta es una de las principales razones por las que se prefieren las marcas de tiempo a las cadenas de fecha formateadas para el almacenamiento y la transmisión: eliminan toda ambigüedad sobre los desfases de la hora local.

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.

Publicidad
Publicidad
Publicidad