Guía

ISO 8601 frente a timestamp Unix: diferencias y usos

Compara fechas de texto ISO 8601 con timestamps Unix, zonas horarias, precisión y ejemplos que representan el mismo instante.

por Tools in a Tab · Publicado el · Revisado el

Respuesta breve

ISO 8601 describe fechas y horas mediante texto estructurado, por ejemplo 2000-01-01T00:00:00Z. Un timestamp Unix expresa un instante como una cantidad desde 1970-01-01T00:00:00Z, normalmente en segundos o milisegundos. Ambos pueden señalar el mismo instante, pero conservan información y unidades diferentes.

El mismo instante en dos representaciones

Estas expresiones son equivalentes:

ISO/RFC 3339 UTC: 2000-01-01T00:00:00Z
ISO con offset:   1999-12-31T19:00:00-05:00
Unix segundos:    946684800
Unix milisegundos:946684800000

La Z indica UTC. El offset -05:00 indica que el reloj local estaba cinco horas por detrás; no es otro instante. Puedes comprobar las cuatro formas en el conversor de fecha, hora y timestamp.

Qué conserva cada formato

Aspecto Fecha ISO 8601/RFC 3339 Timestamp Unix
Lectura humana Alta Baja
Zona u offset visible Puede incluirlo No
Unidad Forma parte de la sintaxis Debe acordarse aparte
Orden cronológico Sí, con forma y zona normalizadas Sí, como número
Uso habitual APIs, registros, configuración Cálculo, expiración, almacenamiento

Un timestamp no contiene el nombre de una zona como Europe/Madrid, ni dice por sí solo si utiliza segundos o milisegundos. Una cadena con offset conserva el desplazamiento escrito, pero tampoco describe necesariamente las reglas históricas completas de una zona.

Cuándo usar cada uno

Usa una fecha ISO con offset o Z en interfaces, registros y APIs donde una persona deba reconocerla o donde la zona escrita sea relevante. Usa Unix time cuando necesites comparar, ordenar o calcular duraciones mediante un contrato numérico compacto.

En una API, documenta siempre una de estas opciones con precisión. No aceptes indistintamente segundos, milisegundos y texto para luego adivinar el formato por la longitud: esa heurística falla con fechas antiguas, futuras o valores negativos.

Errores frecuentes

  • Enviar 2026-08-09T10:00:00 sin Z ni offset y asumir que todos leerán UTC.
  • Multiplicar por 1000 dos veces al pasar de segundos a milisegundos.
  • Formatear un timestamp en hora local y creer que el valor numérico cambió.
  • Ordenar cadenas con offsets diferentes sin normalizarlas primero.
  • Confundir ISO 8601 completo con el perfil más restringido que acepte una API.

El RFC 3339 define un perfil de fecha y hora para protocolos de Internet basado en ISO 8601. La definición de NumericDate del RFC 7519 usa segundos desde el epoch Unix para claims JWT. Elige una representación y declárala como parte del contrato.