¿Qué es un Timestamp Unix y cómo convertirlo?
Por QuickyTools · Publicado el
¿Qué es un Timestamp Unix?
Un timestamp Unix (también llamado Epoch time o tiempo POSIX) es una forma de registrar el tiempo como un solo número: la cantidad de segundos transcurridos desde el 1 de enero de 1970, a las 00:00:00 UTC.
Por ejemplo:
0= 1 de enero de 1970, 00:00:00 UTC1000000000= 9 de septiembre de 2001, 01:46:40 UTC1700000000= 14 de noviembre de 2023, 22:13:20 UTC
Ahora mismo, el timestamp actual está alrededor de 1.7 mil millones.
¿Por qué los desarrolladores usan timestamps?
Los timestamps resuelven un problema universal: las zonas horarias son complicadas. Cuando tu servidor está en Nueva York, tu base de datos en Frankfurt y tu usuario en Tokio, guardar “15 de marzo de 2026 a las 3pm” es ambiguo. ¿3pm dónde?
Un timestamp Unix siempre es UTC. Es solo un número — sin zonas horarias, sin horario de verano, sin formato local. Esto lo hace:
- Inequívoco —
1742054400significa exactamente un momento en el tiempo, en todas partes - Fácil de ordenar — número mayor = fecha más reciente
- Fácil de calcular — la diferencia entre dos timestamps es el número de segundos entre ellos
- Compacto — un solo entero vs. una cadena de fecha formateada
Segundos vs. Milisegundos
Algunos sistemas usan segundos (10 dígitos, ej. 1700000000) y otros usan milisegundos (13 dígitos, ej. 1700000000000).
- Segundos: Unix/Linux, PHP,
time.time()de Python, la mayoría de bases de datos - Milisegundos:
Date.now()de JavaScript,System.currentTimeMillis()de Java
Un truco rápido: si el número tiene 13 dígitos, probablemente son milisegundos.
Casos de uso comunes
| Dónde | Ejemplo |
|---|---|
| Respuestas de API | "created_at": 1700000000 |
| Tokens JWT | "exp": 1700003600 (tiempo de expiración) |
| Archivos de log | [1700000000] Server started |
| Bases de datos | created_at INTEGER NOT NULL |
| Cron jobs | Programación basada en comparaciones de epoch |
| Sistemas de archivos | Hora de última modificación |
Conversión en código
JavaScript:
// Ahora → timestamp
Math.floor(Date.now() / 1000);
// Timestamp → fecha
new Date(1700000000 * 1000).toISOString();
Python:
import time, datetime
time.time() # Ahora → timestamp
datetime.datetime.fromtimestamp(1700000000) # Timestamp → fecha
El problema del año 2038
Los timestamps Unix suelen almacenarse como enteros de 32 bits con signo, que llegan al máximo en 2147483647 — eso es el 19 de enero de 2038, 03:14:07 UTC. Después de eso, el contador se desborda. La mayoría de sistemas modernos ya usan enteros de 64 bits, que no se desbordarán por unos 292 mil millones de años.
Pruébalo ahora
Nuestro Convertidor de Timestamp te permite convertir entre timestamps Unix y fechas legibles al instante. Detecta automáticamente segundos vs. milisegundos y muestra hora local, UTC, ISO 8601 y tiempo relativo.