Lección 3

UTC, hora local y zonas horarias

Hora de pared vs instante, zonas IANA y cambios de horario de verano.

Un Unix timestamp identifica un instante — un punto en la línea temporal global. UTC y la hora local son formas distintas de etiquetar ese instante para humanos.

UTC

Coordinated Universal Time (UTC) es la escala de referencia sin desplazamientos estacionales. Cuando los logs dicen «todas las horas en UTC», las comparaciones entre regiones no requieren adivinar reglas locales.

Las cadenas ISO que terminan en Z significan «Zulu» = UTC, p. ej. 2024-01-15T08:30:00Z.

Hora local de pared

El reloj de tu portátil muestra la hora local de pared — la hora civil en tu zona horaria, incluidos los ajustes de horario de verano. Dos desarrolladores mirando el mismo timestamp pueden escribir lecturas de reloj distintas:

  • 2024-07-01 09:00 en Europe/Berlin
  • 2024-07-01 15:00 en Asia/Shanghai

Ambas pueden describir el mismo instante.

Nombres de zona horaria IANA

Los sistemas usan nombres como America/New_York o Asia/Tokyo (IANA Time Zone Database). Esos nombres codifican cambios históricos de desplazamiento — preferirlos frente a etiquetas fijas «UTC+8» al programar eventos futuros que cruzan límites de DST.

El desplazamiento solo no es una zona horaria. UTC+8 en un día dado puede no decirte qué ocurre cuando las reglas de DST difieren por país.

Almacenamiento vs presentación

Buena práctica en backends:

  • Almacenar el instante UTC (timestamp o TIMESTAMPTZ)
  • Convertir a zona horaria local solo en la UI o informes específicos del usuario

Conclusión clave

Los timestamps almacenan cuándo; las zonas horarias deciden cómo lees el reloj. Separa siempre en qué capa estás mirando. El Conversor de timestamp UTC ayuda a pasar entre instante y hora de pared.

Volver al resumen del curso