CodeKitHub
Español
Herramientas de tiempo

Convertidor de marcas de tiempo de Unix

Convierte una marca de tiempo de Unix en una fecha legible, o selecciona una fecha y obtén su marca de tiempo. La herramienta detecta automáticamente si se trata de segundos o milisegundos, muestra la hora local, la hora UTC y el formato ISO 8601, y muestra en la parte superior un reloj de la época que avanza en tiempo real.

Marca de tiempo actual (segundos)
Marca de tiempo actual (milisegundos)

Marca de tiempo → Fecha

Fecha → Marca de tiempo

¿Qué es esta herramienta?

Una marca de tiempo Unix (también denominada «tiempo de época») es el número de segundos transcurridos desde el 1 de enero de 1970 a las 00:00:00 UTC. Es la forma estándar en que se almacenan internamente los momentos concretos en el tiempo: las bases de datos, los archivos de registro, las API y los lenguajes de programación la utilizan porque se trata de un número único e inequívoco que evita confusiones relacionadas con las zonas horarias.

Existen dos formatos: segundos (hoy en día de 10 dígitos, p. ej., 1720500000) y milisegundos (de 13 dígitos, utilizados por JavaScript y Java). Esta herramienta detecta automáticamente cuál de los dos has pegado.

¿Por qué utilizarlo?

  • Lee al instante las marcas de tiempo de los registros, las entradas de la base de datos y las respuestas de la API.
  • Detecta automáticamente si se trata de segundos o milisegundos, sin necesidad de adivinar.
  • Muestra a la vez la hora local, la hora UTC, el formato ISO 8601 y la hora relativa («hace 3 horas»).
  • Convertir en ambos sentidos: marca de tiempo → fecha y fecha → marca de tiempo.
  • Reloj en tiempo real con la época actual para una consulta rápida.

Cómo utilizarlo

  1. Para descodificarlo: pega una marca de tiempo (por ejemplo, 1720500000) en el cuadro de la izquierda y haz clic en «Convertir».
  2. Lee el resultado en tu zona horaria local, en UTC, según la norma ISO 8601 y como hora relativa.
  3. Para codificar: selecciona una fecha y una hora en el recuadro de la derecha y haz clic en «Convertir» para obtener su marca de tiempo en segundos y milisegundos.
  4. Utiliza el reloj en tiempo real que aparece en la parte superior cuando solo necesites la hora actual.

Ejemplo

Entrada

1720500000

Resultado

Local time: 7/9/2024, 1:20:00 PM
UTC time:   Tue, 09 Jul 2024 05:20:00 GMT
ISO 8601:   2024-07-09T05:20:00.000Z

Un valor de 10 dígitos se interpreta como segundos; un valor de 13 dígitos, como milisegundos.

Consejos prácticos

  • Depuración de errores relacionados con la «hora incorrecta»: el 90 % son problemas de visualización de la zona horaria, no marcas de tiempo erróneas. Compara la fila de UTC con los registros de tu servidor (los servidores suelen registrar en UTC) antes de modificar ningún código.
  • Una fecha que coincide exactamente con el 1 de enero de 1970 significa que la marca de tiempo era 0 o faltaba: un síntoma clásico de valor nulo, no una fecha real.
  • Una fecha en torno a 1970 + unos días suele significar que, en algún lugar, los segundos se interpretaron como milisegundos; una fecha en el año 56 000+ significa lo contrario.
  • En hojas de cálculo: Excel cuenta los días desde 1900, no los segundos desde 1970. Para obtener una marca de tiempo en segundos, utiliza la fórmula =(A1/86400)+DATE(1970,1,1).

Situaciones de uso reales

Situaciones en las que las marcas de tiempo resultan cruciales en la práctica: leer los campos de caducidad en los JWT y los tokens de API (exp/iat se expresan en segundos Unix), correlacionar la hora de un informe de error de un usuario con las entradas del registro del servidor, configurar los tiempos de vida (TTL) de la caché y las ventanas de cron, y comprobar si un certificado o un token ha caducado realmente. La fila de tiempo relativo («hace 3 horas») es la forma más rápida de comprobar la validez de todo ello.

La depuración de JWT es lo suficientemente habitual como para explicarla con detalle: descodifica la carga útil del token con la herramienta Base64 y, a continuación, pega aquí el valor «exp»; así obtendrás una respuesta inmediata a la pregunta «¿ha caducado este token y cuánto tiempo le queda?».

Por qué se diseñó el tiempo Unix de esta manera

Almacenar un único número incremental desde una época fija (en lugar de una estructura de año/mes/día/hora) fue una decisión deliberada en aras de la simplicidad: dos marcas de tiempo pueden compararse o restarse entre sí mediante operaciones aritméticas básicas, sin necesidad de lógica de calendario, razón por la cual las bases de datos, los formatos de registro y prácticamente la representación interna de la fecha en todos los lenguajes de programación se basan en ello. El coste de esa simplicidad es precisamente lo que esta herramienta pretende suavizar: los seres humanos no piensan en «segundos desde 1970», por lo que cada marca de tiempo debe traducirse de nuevo a una fecha del calendario antes de que tenga sentido para quien la lee, y esa traducción debe tener en cuenta la zona horaria, la precisión (segundos frente a milisegundos) y el formato de visualización, todo al mismo tiempo.

Codificador/decodificador Base64 · Calculadora de edad

Preguntas frecuentes

¿Cómo sabe la herramienta si mi marca de tiempo está en segundos o en milisegundos?

Por orden de magnitud. Los valores de 1 000 000 000 000 (1e12) o superiores se consideran milisegundos; los valores inferiores, segundos. Las fechas actuales equivalen a unos 1.700 millones de segundos y unos 1.700.000 millones de milisegundos, por lo que ambos rangos no se solapan en el caso de fechas reales.

¿Por qué la marca de tiempo indica una hora diferente a la que esperaba?

Zonas horarias. Una marca de tiempo siempre se basa en el UTC; la fila «hora local» la convierte a la zona horaria de tu dispositivo. Compara la fila UTC con lo que registran los registros de tu sistema de origen; muchos servidores registran los datos en UTC.

¿En qué consiste el problema del año 2038?

Los sistemas que almacenan marcas de tiempo como enteros con signo de 32 bits sufrirán un desbordamiento el 19 de enero de 2038. Los sistemas modernos utilizan enteros de 64 bits y no se ven afectados. Esta herramienta utiliza números de JavaScript, que admiten fechas mucho más allá de 2038.

¿Puedo convertir marcas de tiempo negativas?

Sí. Las marcas de tiempo negativas corresponden a fechas anteriores al 1 de enero de 1970; por ejemplo, -86400 corresponde al 31 de diciembre de 1969.

¿Incluye la época los segundos intercalares?

No. El tiempo Unix parte de la base de que cada día tiene exactamente 86 400 segundos y no tiene en cuenta los segundos intercalares, una simplificación deliberada que facilita los cálculos aritméticos.

Herramientas relacionadas