Guía
Timestamp, UTC y hora local: cómo evitar desfases
Distingue un instante UTC de su representación local y evita errores de zona horaria y cambios de horario al convertir timestamps.
por Tools in a Tab · Publicado el · Revisado el
Respuesta breve
Un timestamp identifica un instante; UTC y la hora local son maneras de mostrarlo. El número Unix no cambia al viajar de Madrid a Ciudad de México, pero la fecha y hora visibles sí.
Un instante, varias representaciones
Timestamp: 1767225600 s
UTC: 2026-01-01 00:00:00Z
Madrid: 2026-01-01 01:00:00 (invierno)
No debes sumar una hora al timestamp para «convertirlo a Madrid». Conserva el instante y aplica la zona solo al presentar o recoger una hora local.
Cuándo elegir UTC
UTC es la opción adecuada para logs, expiraciones, eventos entre sistemas y
almacenamiento de instantes. Evita que el mismo valor cambie de significado
según la máquina que lo procese. Una fecha ISO con sufijo Z declara UTC de
forma explícita.
La hora local es necesaria cuando la intención humana depende del calendario
del lugar: una cita a las 09:00, la apertura de una tienda o una tarea diaria.
En esos casos conviene conservar también el identificador de zona, no solo un
desplazamiento como +01:00, porque las reglas pueden variar según la fecha.
El problema del horario de verano
En un cambio de primavera, el reloj salta y existe un intervalo de horas locales que nunca ocurre. En otoño, un intervalo se repite y una misma hora local puede apuntar a dos instantes. Un desplazamiento fijo no resuelve ambos casos.
El conversor de fecha y timestamp rechaza una hora local inexistente y avisa si resulta ambigua en la zona del navegador. Para una conversión reproducible entre países, usa UTC.
Checklist
- ¿La entrada incluye
Z, un offset o una zona conocida? - ¿El sistema necesita un instante o una hora civil recurrente?
- ¿La unidad del timestamp está declarada?
- ¿Se ha probado una fecha de cambio horario?
- ¿La interfaz muestra la zona junto al resultado?
Un desfase exacto de una o dos horas suele ser una pista de zona mal aplicada; un factor de mil suele indicar, en cambio, una confusión entre segundos y milisegundos.
Fuente primaria
La especificación de Date en ECMAScript distingue el valor temporal UTC de las operaciones que lo presentan como hora local.