¿Qué es un timestamp Unix?
Un timestamp Unix (también conocido como tiempo epoch o tiempo POSIX) es el número de segundos transcurridos desde las 00:00:00 UTC del 1 de enero de 1970 —el llamado «epoch Unix»—, sin contar los segundos intercalares. Es la forma universal en que los ordenadores almacenan un instante concreto como un único número, con independencia de la zona horaria. Esta calculadora convierte un valor en milisegundos al timestamp Unix estándar en segundos y, además, muestra su equivalencia en minutos, horas y días desde el epoch.
Cómo utilizarla
Introduce un valor de tiempo en milisegundos. Para obtener el timestamp Unix actual («epoch ahora»), indica la hora presente en milisegundos; el valor predeterminado se ofrece a modo de ejemplo. La calculadora divide entre 1.000 y redondea hacia abajo para devolver segundos enteros, el formato que esperan prácticamente todas las API, bases de datos y lenguajes de programación.
La fórmula explicada
La conversión esencial es $$\text{Epoch} = \left\lfloor \dfrac{\text{Time (ms)}}{1000} \right\rfloor$$ Los milisegundos ofrecen una precisión de milésimas de segundo, pero el timestamp Unix clásico se mide en segundos enteros, así que aplicamos el suelo (descartamos la parte decimal). A partir de ahí, dividir el epoch entre 60, 3.600 y 86.400 nos da los minutos, las horas y los días, respectivamente.
$$\begin{gathered} \text{Epoch} = \left\lfloor \dfrac{\text{Time (ms)}}{1000} \right\rfloor \\[1.5em] \text{where}\quad \left\{ \begin{aligned} \text{Minutes} &= \left\lfloor \tfrac{\text{Epoch}}{60} \right\rfloor \\ \text{Hours} &= \left\lfloor \tfrac{\text{Epoch}}{3600} \right\rfloor \\ \text{Days} &= \left\lfloor \tfrac{\text{Epoch}}{86400} \right\rfloor \end{aligned} \right. \end{gathered}$$
Ejemplo práctico
Imagina que la hora actual es 1.700.000.000.000 de milisegundos. Al dividir entre 1.000 obtenemos 1.700.000.000 de segundos: ese es el timestamp Unix. Si dividimos 1.700.000.000 entre 86.400 y aplicamos el suelo, resultan 19.675 días desde el 1 de enero de 1970, lo que corresponde a mediados de noviembre de 2023.
$$\left\lfloor \frac{1{,}700{,}000{,}000{,}000}{1000} \right\rfloor = 1{,}700{,}000{,}000$$
$$\left\lfloor \frac{1{,}700{,}000{,}000}{86{,}400} \right\rfloor = 19{,}675 \;\text{días}$$
Preguntas frecuentes
¿Por qué segundos y no milisegundos? El estándar Unix original utiliza segundos. El método Date.now() de JavaScript devuelve milisegundos, por eso es habitual dividir entre 1.000.
¿Tiene en cuenta las zonas horarias? No: el tiempo Unix siempre está en UTC. Un mismo instante tiene el mismo timestamp en cualquier punto de la Tierra.
¿Qué es el problema del año 2038? Los sistemas que almacenan el timestamp en un entero con signo de 32 bits sufrirán un desbordamiento el 19 de enero de 2038. Los sistemas modernos de 64 bits evitan este problema.