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 · Actualizada
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.
Convertir texto ISO a Unix sin perder los milisegundos
- Abre el modo fecha a timestamp.
- En Formato de entrada de fecha, selecciona Pegar ISO 8601 con zona horaria.
- Pega
2000-01-01T01:00:00.123+01:00y pulsa Convertir a timestamp. - Comprueba la salida UTC
2000-01-01T00:00:00.123Zy el timestamp en milisegundos946684800123. La salida en segundos es946684800.123.
Para verificarlo en sentido inverso, abre el
modo timestamp a fecha,
selecciona milisegundos e introduce 946684800123. La entrada de timestamp
acepta enteros: usa milisegundos en este paso, no segundos con decimales.
La salida UTC representa el mismo instante, pero no conserva la escritura
original del offset +01:00.
La entrada ISO admite fechas de calendario entre los años 0001 y 9999,
segundos, Z o un offset explícito ±HH:mm y, opcionalmente, de uno a tres
decimales. Rechaza fechas sin hora, offsets ausentes, el offset desconocido
-00:00, segundos intercalares y más decimales. Son límites de la herramienta,
no una afirmación de que todas esas formas sean inválidas en ISO 8601 o RFC 3339.
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:00sinZni offset y asumir que todos leerán UTC. - Multiplicar por
1000dos 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.