Conversor de marca de tiempo Unix

Pega una marca de tiempo o una fecha y obtén todas las demás formas.

Hora Unix actual
Segundos Unix
Milisegundos
ISO 8601 (UTC)
UTC
Hora local
Relativo
Día de la semana
Día del año
Semana ISO

Qué es una marca de tiempo Unix

Una marca de tiempo Unix (también llamada tiempo epoch o tiempo POSIX) es el número de segundos transcurridos desde las 00:00:00 UTC del 1 de enero de 1970, sin contar los segundos intercalares. Es la forma más común en que las computadoras almacenan e intercambian instantes de tiempo, porque es un solo entero que no depende de zonas horarias, calendarios ni formatos regionales. Las bases de datos, los archivos de registro, los tokens JWT, las APIs y los sistemas operativos la usan, y por eso quienes programan necesitan constantemente traducir entre un número crudo como 1700000000 y una fecha que una persona pueda leer.

Distintos sistemas usan distinta precisión. Unix y la mayoría de las bases de datos almacenan segundos (10 dígitos hoy en día). Date.now() de JavaScript y System.currentTimeMillis() de Java devuelven milisegundos (13 dígitos). Algunos sistemas de registro y el paquete time de Go exponen microsegundos (16 dígitos) o nanosegundos (19 dígitos). Este conversor detecta la unidad a partir del número de dígitos automáticamente, así que puedes pegar cualquiera de ellos sin elegir un formato.

Cómo usar este conversor

El reloj en vivo de la parte superior muestra la marca de tiempo Unix actual en segundos y se actualiza cada segundo; haz clic en Copiar para tomarla o en Usar ahora para cargarla en el conversor. Pega una marca de tiempo en el cuadro de entrada y la tabla se completa al instante: segundos, milisegundos, ISO 8601 (el estándar que usan la mayoría de las APIs), la cadena UTC según RFC 1123, la fecha y hora en tu zona horaria local con su nombre, una descripción relativa como 'en 3 días' o 'hace 2 horas', el día de la semana, el día del año y el número de semana ISO.

El conversor también funciona en el otro sentido. Escribe una fecha como 2025-03-01, 2025-03-01T14:30:00Z, o March 1 2025 14:30 y se analiza con el motor de fechas de tu navegador y se convierte a segundos y milisegundos epoch. Las fechas sin una zona explícita se interpretan en tu zona horaria local, exactamente como lo hace JavaScript.

Zonas horarias, ISO 8601 y errores comunes

Una marca de tiempo en sí misma no tiene zona horaria; solo la tiene su representación. El mismo valor 1700000000 son las 22:13 en Londres y las 06:13 del día siguiente en Shanghái. Cuando dos sistemas difieren exactamente por unas horas, una confusión de zona horaria es casi siempre la causa. Prefiere intercambiar cadenas ISO 8601 con una Z explícita o un desfase (2024-11-14T22:13:20Z) o números epoch crudos en lugar de cadenas de fecha locales. Otro error clásico es mezclar segundos y milisegundos: una fecha en el año 55000 o en 1970 suele significar una discrepancia de unidad, y la nota 'detectado como' debajo de la entrada te dice qué unidad se supuso. Por último, recuerda el límite de 32 bits: los sistemas que almacenan segundos en un entero de 32 bits con signo se desbordan el 19 de enero de 2038.

Contexto: ¿por qué 1970?

El epoch de Unix lo eligieron quienes desarrollaron Unix en Bell Labs a principios de los años setenta; la primera edición contaba sesentavos de segundo desde 1971 y se desbordaba en unos meses, así que se cambió a segundos enteros desde el 1 de enero de 1970, una fecha redonda situada con seguridad en un pasado reciente. Como ignora los segundos intercalares, cada día Unix tiene exactamente 86.400 segundos, lo que hace triviales los cálculos y es la razón por la que el formato se extendió de Unix a todas las bases de datos, lenguajes de programación y protocolos de red. El problema del año 2038, cuando los contadores de 32 bits con signo se dan la vuelta, es la herencia directa de aquel diseño temprano; los sistemas modernos almacenan valores de 64 bits y están a salvo durante los próximos 292.000 millones de años.

Dónde se usa

Las marcas de tiempo son las declaraciones exp, iat y nbf dentro de un token JWT, las columnas created_at de casi todas las bases de datos, el primer campo de la mayoría de las líneas de registro, las cabeceras de caché HTTP, los sistemas de cron y programación, los encabezados de bloque de las cadenas de bloques, los metadatos del sistema de archivos (mtime) y la lógica de ETag/Last-Modified que decide si una CDN puede reutilizar una página en caché. Cuando un ticket de soporte dice 'la exportación falló en 1718000000', este conversor es la forma de convertirlo en una hora de un calendario humano; al escribir pruebas, convertir una fecha fija en segundos epoch te da un valor estable e independiente de la zona horaria contra el que hacer aserciones. Los datos estructurados de este sitio, y de cualquier API JSON que construyas, deberían usar cadenas ISO 8601 por legibilidad y enteros epoch para los cálculos.

Preguntas frecuentes

¿Cómo obtengo la marca de tiempo Unix actual?

Se muestra en vivo en la parte superior de esta página. En código: date +%s en una shell, Math.floor(Date.now()/1000) en JavaScript, int(time.time()) en Python.

¿La marca de tiempo está en segundos o milisegundos?

Los valores de 10 dígitos son segundos, los de 13 dígitos son milisegundos. El conversor lo detecta automáticamente a partir de la longitud y te dice qué unidad supuso.

¿Qué zona horaria se usa para la hora local?

La zona horaria de tu navegador, mostrada junto al reloj. Las filas de UTC e ISO 8601 están siempre en UTC, así que es seguro pegarlas en otros sistemas.

¿Por qué mi fecha está desfasada un día?

Una cadena de fecha sin hora ni zona se analiza a la medianoche local; convertirla a UTC puede moverla al otro lado del límite de fecha. Usa una hora y una zona explícitas (p. ej. 2025-03-01T00:00:00Z) para evitar la ambigüedad.

¿Maneja marcas de tiempo negativas y fechas anteriores a 1970?

Sí. Los valores negativos cuentan hacia atrás desde el epoch, así que -86400 es el 31 de diciembre de 1969.