Guía
Timestamp en segundos vs milisegundos
Aprende a distinguir timestamps de 10 y 13 cifras, convertir la unidad sin cambiar el instante y evitar fechas absurdas.
por Tools in a Tab · Publicado el · Revisado el
Respuesta breve
Los timestamps Unix se encuentran sobre todo en dos unidades: segundos y
milisegundos desde 1970-01-01T00:00:00Z. Confundirlas desplaza el resultado
por un factor de 1000.
El mismo instante en dos unidades
2000-01-01T00:00:00Z
segundos: 946684800
milisegundos: 946684800000
La conversión exacta es:
milisegundos = segundos × 1000
segundos = milisegundos ÷ 1000
Si los milisegundos no terminan en 000, dividir puede producir una parte
decimal. 946684800123 ms representa 946684800,123 s; truncar a segundos
descarta 123 ms.
¿Se puede detectar por el número de cifras?
En fechas cercanas a la actualidad, diez cifras suelen indicar segundos y trece, milisegundos. La regla falla con fechas lejanas, valores negativos, datos truncados o unidades distintas como microsegundos. Úsala para detectar un posible error, nunca como sustituto de la documentación de la API.
Una comprobación práctica consiste en convertir ambas interpretaciones con el conversor de timestamp. Si una produce una fecha razonable y la otra rebasa el rango admitido, habrás encontrado una señal fuerte, pero todavía conviene confirmar el contrato.
Señales típicas de una unidad equivocada
- El resultado cae en enero de 1970 al interpretar milisegundos como segundos después de una división previa incorrecta.
- El sistema devuelve una fecha extremadamente lejana o fuera de rango.
- Una fecha correcta pierde tres cifras de precisión.
- Un claim JWT parece durar miles de años:
exp,iatynbfusan segundosNumericDatesegún la RFC 7519.
Regla para integraciones
Nombra la unidad en campos, tipos o documentación: created_at_seconds,
timestamp_ms o una fecha ISO con Z. No dependas de la longitud del número.
Al comparar dos valores, normalízalos primero a la misma unidad y conserva
enteros mientras sea posible para evitar redondeos binarios.