Guía
Qué es un timestamp Unix y cómo se calcula
Entiende qué mide Unix time, cuál es su epoch y cómo pasar de segundos transcurridos a una fecha UTC con ejemplos exactos.
por Tools in a Tab · Publicado el · Revisado el
Respuesta breve
Un timestamp Unix representa tiempo como una cantidad respecto a un instante
común: 1970-01-01 00:00:00 UTC, llamado Unix epoch. En su forma habitual
cuenta segundos; muchas APIs y lenguajes usan milisegundos, por lo que la unidad
debe formar parte del dato.
Tres ejemplos que fijan el modelo
| Fecha UTC | Segundos Unix | Milisegundos Unix |
|---|---|---|
| 1970-01-01 00:00:00 | 0 |
0 |
| 1970-01-01 00:00:01 | 1 |
1000 |
| 2000-01-01 00:00:00 | 946684800 |
946684800000 |
El timestamp no guarda palabras como «sábado», una zona horaria ni un formato
visual. Guarda un punto de la línea temporal. La presentación como
01/01/2000, 1999-12-31 19:00 o 2000-01-01T00:00:00Z depende después de la
zona y del formato elegidos.
Cómo se calcula
Conceptualmente, se resta el epoch a la fecha UTC y se expresa la diferencia en la unidad deseada:
timestamp en segundos = (instante UTC - epoch UTC) / 1 segundo
timestamp en ms = (instante UTC - epoch UTC) / 1 milisegundo
Por ejemplo, un día exacto después del epoch son 24 × 60 × 60 = 86400
segundos. Un día antes es -86400. Los valores negativos no son errores por sí
mismos: representan instantes anteriores a 1970.
Lo que Unix time no resuelve
- No identifica la zona horaria que escribió una fecha local.
- No evita las horas inexistentes o repetidas por cambios de horario.
- No dice por sí solo si la unidad son segundos o milisegundos.
- No demuestra que un reloj estuviera sincronizado.
- No incorpora normalmente segundos intercalares en el recuento cotidiano.
Para convertir un valor real, elige explícitamente unidad y zona en el
conversor de fecha, hora y timestamp.
La definición NumericDate de JWT sigue el mismo origen y expresa segundos
desde el epoch, ignorando segundos intercalares, según la
RFC 7519.
Comprobación rápida
Si un valor actual tiene aproximadamente diez cifras, probablemente esté en
segundos; con trece, suele estar en milisegundos. Es solo una pista: confirma el
contrato del sistema antes de convertir. Multiplicar o dividir por 1000 debe
cambiar la unidad, no el instante.