Qué es un timestamp Unix
El timestamp Unix (también llamado epoch time o tiempo POSIX) es la cantidad de segundos transcurridos desde la medianoche del 1 de enero de 1970 en UTC. Ese instante se conoce como la época o epoch. Es la forma más común de representar el tiempo en sistemas informáticos porque es un solo número, sin ambigüedad de zonas horarias ni de formatos de fecha regionales.
Datos clave del epoch
Tabla de referencia rápida con los hechos que más se consultan:
| Concepto | Valor |
|---|---|
| Epoch 0 | 1970-01-01T00:00:00Z (UTC) |
| Timestamp en segundos | 10 dígitos (ej. 1700000000) |
| Timestamp en milisegundos | 13 dígitos (ej. 1700000000000) |
| Ejemplo: 1700000000 s | 2023-11-14T22:13:20Z |
| Límite Y2038 (32 bits) | 2038-01-19T03:14:07Z (2.147.483.647) |
| Formato ISO 8601 | AAAA-MM-DDTHH:MM:SSZ (Z = UTC) |
Segundos vs milisegundos
Hay dos convenciones muy usadas. La original de Unix cuenta en segundos (10 dígitos hoy en día, ej. 1700000000). JavaScript, en cambio, trabaja en milisegundos (13 dígitos, ej. 1700000000000). Confundir una con otra es el error más frecuente: si tratás milisegundos como segundos, te da una fecha del año 56.000. Esta herramienta detecta la unidad por la cantidad de dígitos, pero podés forzarla con el selector.
UTC y hora local
Un timestamp representa un instante absoluto, siempre en UTC. Para mostrarlo a una persona lo convertís a su huso horario. Por eso te damos las dos vistas: el ISO 8601 en UTC (terminado en Z) y la hora local de tu dispositivo. Si trabajás con logs de servidores en distintas regiones, guardá siempre UTC y convertí solo al mostrar.
El formato ISO 8601
ISO 8601 es el estándar para escribir fechas como texto de forma inequívoca: 2023-11-14T22:13:20Z. Empieza por el año, luego mes y día, la T separa la fecha de la hora, y la Z indica UTC (Zulu). Su gran ventaja es que ordena alfabéticamente igual que cronológicamente, ideal para APIs, bases de datos y archivos.
El problema del año 2038
Muchos sistemas antiguos guardan el timestamp en un entero con signo de 32 bits. Ese tipo llega como máximo a 2.147.483.647, valor que se alcanza el 19 de enero de 2038 a las 03:14:07 UTC. Pasado ese punto, el contador desborda y salta a fechas negativas (1901). La solución, ya adoptada en la mayoría de plataformas modernas, es usar enteros de 64 bits, que dan margen para miles de millones de años.
Usos habituales
- Bases de datos: guardar
created_atyupdated_atcomo epoch para comparar y ordenar rápido. - APIs y JWT: los campos
iatyexpde un token son timestamps en segundos. - Logs: correlacionar eventos entre servicios usando un reloj común en UTC.
- Cache y expiración: calcular si algo caducó comparando
nowcontra un epoch guardado. - Cron y scheduling: definir cuándo debe correr una tarea sin líos de zona horaria.