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:00enEurope/Berlin2024-07-01 15:00enAsia/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.