Lição 3

UTC, horário local e fusos horários

Relógio de parede vs instante, fusos IANA e mudanças de horário de verão.

Um timestamp Unix identifica um instante — um ponto na linha do tempo global. UTC e horário local são formas diferentes de rotular esse instante para humanos.

UTC

Tempo Universal Coordenado (UTC) é a escala de referência sem offsets sazonais. Quando logs dizem “todos os horários em UTC”, comparações entre regiões não exigem adivinhar regras locais.

Strings ISO terminadas em Z significam “Zulu” = UTC, ex.: 2024-01-15T08:30:00Z.

Horário local de parede

O relógio do notebook mostra horário civil local — o tempo no seu fuso, incluindo ajustes de horário de verão. Dois desenvolvedores olhando o mesmo timestamp podem escrever leituras diferentes:

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

Ambos podem descrever o mesmo instante.

Nomes de fuso IANA

Sistemas usam nomes como America/New_York ou Asia/Tokyo (banco de fusos IANA). Esses nomes codificam mudanças históricas de offset — prefira-os a rótulos fixos “UTC+8” ao agendar eventos futuros atravessando limites de horário de verão.

Offset sozinho não é um fuso. UTC+8 em um dia pode não dizer o que acontece quando regras de DST diferem por país.

Armazenagem vs exibição

Boa prática em backends:

  • Armazene instante em UTC (timestamp ou TIMESTAMPTZ)
  • Converta para fuso local só na UI ou relatórios por usuário

Resumo

Timestamps guardam quando; fusos decidem como você lê o relógio. Sempre saiba em qual camada você está olhando.

Voltar à visão geral do curso