
Qué es un timestamp Unix: segundos, zonas horarias y errores comunes
Entiende la época Unix, distingue segundos de milisegundos y convierte instantes sin introducir errores de zona horaria.
Un timestamp Unix cuenta segundos desde el 1 de enero de 1970 a las 00:00:00 UTC. Representa un instante, no una fecha formateada ni una zona horaria.
Segundos y milisegundos
Muchos sistemas usan segundos; JavaScript utiliza milisegundos. Convierte segundos con new Date(valor * 1000) y vuelve a segundos con Math.floor(fecha.getTime() / 1000). Diez dígitos suelen indicar segundos y trece milisegundos, pero siempre confirma el contrato de datos.
UTC y hora local
El mismo instante puede mostrarse con horas distintas según la zona. Guarda el instante en un formato estable y conserva aparte el identificador de zona cuando una cita futura deba respetar reglas de horario de verano. Un desplazamiento como +01:00 no contiene esas reglas.
Errores habituales
- Multiplicar milisegundos otra vez por 1000.
- Interpretar una cadena sin zona explícita.
- Confundir medianoche local con UTC.
- Ordenar textos formateados en lugar de instantes.
- Perder precisión al pasar por tipos numéricos limitados.
Problema de 2038
Los contadores con signo de 32 bits alcanzan su límite el 19 de enero de 2038 UTC. Sistemas modernos pueden usar 64 bits, pero bases de datos, dispositivos o integraciones antiguas todavía deben auditarse.
El conversor Unix muestra UTC y hora local; la calculadora de diferencia compara fechas. Para seguridad, usa tiempo de servidor: un timestamp enviado por el cliente no prueba cuándo ocurrió una acción.
Preguntas frecuentes
¿Incluye una zona horaria?
No, identifica un instante.
¿JavaScript usa segundos?
No, sus fechas usan milisegundos.
¿Todos los sistemas superaron 2038?
No; hay que revisar todo el flujo de datos.