El timestamp Unix cuenta los segundos transcurridos desde el 1 de enero de 1970 UTC (epoch). Es la representación de tiempo más eficiente y sin ambigüedades: un entero. Este conversor traduce entre fechas humanas, timestamps en segundos y en milisegundos, y muestra la equivalencia en múltiples zonas horarias.
Segundos, milisegundos y el bug del 2038
Unix clásico usa 32 bits con signo: llega al máximo el 19 de enero de 2038 (2^31 segundos desde epoch). Los sistemas modernos usan 64 bits y no tendrán ese problema hasta el año 292 mil millones. En cambio, JavaScript (Date.now()) y muchas APIs modernas usan milisegundos: multiplica o divide por 1000 al interoperar.
Zonas horarias y UTC
Un timestamp Unix es siempre UTC; el offset se aplica al presentarlo. Guarda siempre en UTC en base de datos (TIMESTAMPTZ en PostgreSQL, `DATETIME` con zona clara) y convierte a zona local sólo en la capa de presentación. Ignorar esto genera bugs que aparecen sólo dos veces al año (cambios de horario) y son de los más difíciles de reproducir.
ISO 8601 como alternativa legible
Cuando la eficiencia no es crítica, ISO 8601 (`2026-07-09T14:30:00Z`) es más legible, incluye zona horaria y se parsea sin ambigüedad en cualquier lenguaje. Es el formato de intercambio recomendado en APIs REST y JSON: `date -Iseconds` en Linux, `Date.toISOString()` en JS.
Precisión y monotonic clocks
Un timestamp Unix no es monótono: el sistema puede saltar hacia atrás por NTP. Para medir intervalos usa clocks monotónicos (`clock_gettime(CLOCK_MONOTONIC)`, `performance.now()`), no restas de timestamps de reloj. Para logs, guarda ambos: timestamp humano y monotónico si te importa medir latencias con precisión.
Casos de uso comunes
- Depurar logs con timestamps en formato Unix.
- Convertir campos `created_at` numéricos a fechas humanas.
- Calcular expiraciones (`exp` en JWT, TTL en Redis).
- Coordinar eventos entre sistemas en zonas horarias distintas.
Buenas prácticas
- Guarda siempre en UTC; convierte a local sólo al mostrar.
- Usa ISO 8601 en APIs REST y JSON.
- Para intervalos, usa clocks monotónicos.
- Documenta si tus timestamps están en segundos o milisegundos.