Guía en profundidad
Unix timestamp, Epoch y representación del tiempo
Cómo representar instantes, distinguir UTC, offset y timezone y trabajar con segundos, milisegundos e ISO 8601.
Epoch e instante absoluto
Unix time mide el tiempo desde 1970-01-01T00:00:00Z, normalmente como segundos transcurridos. Identifica un instante en la línea temporal sin incorporar una zona geográfica ni un formato local.
Esa neutralidad facilita almacenamiento, protocolos y comparaciones. La presentación humana requiere convertir el instante a calendario, locale y zona horaria adecuados.
Segundos, milisegundos y unidades
Distintos sistemas usan segundos, milisegundos, microsegundos o nanosegundos. Interpretar el mismo entero con otra unidad desplaza la fecha por órdenes de magnitud, por lo que la unidad forma parte del contrato.
Muchas API JavaScript usan milisegundos y numerosas interfaces Unix usan segundos. No conviene confiar en heurísticas basadas solo en la cantidad de dígitos.
UTC, offset y timezone
UTC es la referencia global; un offset como +02:00 expresa la diferencia respecto a UTC en un instante. Una zona como Europe/Rome contiene reglas históricas y futuras, incluidas transiciones de horario de verano.
Un offset no es una timezone. Conocer +02:00 no indica qué reglas aplicar en otra fecha; los eventos civiles recurrentes suelen necesitar un identificador de zona.
DST y horas locales ambiguas
Al comenzar el horario de verano algunas horas locales no existen; al terminar, algunas ocurren dos veces. Un datetime local sin zona puede ser ambiguo o inválido.
Para hechos ocurridos guarda un instante absoluto. Para citas futuras ligadas a reglas civiles conserva también la zona y la semántica local. Son problemas diferentes.
ISO 8601 para intercambio legible
ISO 8601 ofrece cadenas ordenadas y legibles como 2026-08-29T21:30:00Z o valores con offset explícito. Es apropiado en muchas API y logs cuando importa la legibilidad.
Incluir Z u offset evita interpretaciones locales silenciosas. El contrato debe definir además precisión, política de zona y significado de valores sin offset.
Leap seconds, rangos y buenas prácticas
El modelo Unix/POSIX habitual no representa los leap seconds como segundos lineales distintos y las plataformas pueden tratarlos de forma diferente. Aplicaciones científicas pueden necesitar otras escalas temporales.
Usa bases de zonas actualizadas, declara las unidades y evita calcular tiempo civil sumando segundos cuando el requisito es 'la misma hora local mañana'. Tiempo de máquina y calendario civil son conceptos distintos.