¿Qué es una marca de tiempo epoch en milisegundos?
Una marca de tiempo Unix epoch mide el tiempo transcurrido desde el 1970-01-01 00:00:00 UTC, el instante conocido como «epoch» (época). Muchos lenguajes de programación y APIs (como Date.now() en JavaScript, System.currentTimeMillis() en Java o numerosas respuestas en JSON) expresan este valor en milisegundos en lugar de segundos. Este conversor transforma ese número en bruto en una fecha y hora UTC clara y fácil de leer.
Cómo usar este conversor
Pega o escribe tu marca de tiempo en milisegundos en el campo de entrada y envíalo. La herramienta divide el valor entre 1000 para obtener los segundos completos y, a continuación, sitúa esos segundos en el calendario partiendo del epoch. Obtendrás la cadena completa en formato ISO 8601 (por ejemplo, 2023-11-14T22:13:20Z) junto con el desglose en año, mes, día, hora, minuto y segundo, todo en UTC, de modo que el resultado no se ve afectado por tu zona horaria local.
La fórmula explicada
La conversión consta de dos pasos sencillos. Primero, segundos = floor(ms / 1000) descarta la fracción inferior a un segundo. Después, fecha = epoch + segundos suma esos segundos a la medianoche del 1 de enero de 1970. La lógica del calendario gestiona automáticamente los años bisiestos, la distinta duración de los meses y demás detalles.
$$\text{Date}_{\text{UTC}} = \text{Epoch}_{1970} + \frac{\text{Epoch Time (ms)}}{1000}\ \text{seconds}$$
$$\begin{gathered} \text{Date}_{\text{UTC}} = \text{Epoch}_{1970} + t_{s}\ \text{seconds} \\[1.5em] \text{where}\quad \left\{ \begin{aligned} t_{s} &= \left\lfloor \dfrac{\text{Epoch Time (ms)}}{1000} \right\rfloor \\ \text{Epoch}_{1970} &= \text{1970-01-01T00:00:00Z} \end{aligned} \right. \end{gathered}$$
Ejemplo resuelto
Tomemos 1 700 000 000 000 ms. Al dividir entre 1000 obtenemos 1 700 000 000 segundos. Sumándolos al epoch llegamos a 2023-11-14T22:13:20Z, es decir, el 14 de noviembre de 2023 a las 22:13:20 UTC.
$$\left\lfloor \frac{1\,700\,000\,000\,000}{1000} \right\rfloor = 1\,700\,000\,000\ \text{seconds}$$
$$\text{Epoch}_{1970} + 1\,700\,000\,000\ \text{seconds} = \text{2023-11-14T22:13:20Z}$$
Preguntas frecuentes
¿El resultado está en mi hora local? No. Para evitar ambigüedades, la salida siempre se muestra en UTC (Tiempo Universal Coordinado). Aplica tu propio desfase horario si necesitas la hora local.
¿Y si tengo segundos en lugar de milisegundos? Multiplica tu marca de tiempo en segundos por 1000 antes de introducirla, o simplemente añádele tres ceros.
¿Por qué una marca de tiempo aparece en una fecha muy lejana o en 1970? Un valor en segundos introducido como milisegundos aparece cerca de 1970, mientras que un valor que ya está en milisegundos y al que se le añaden ceros de más cae en un futuro lejano. Comprueba siempre que tu unidad sean milisegundos.