Resumo

  • RFC 9636 define a representação TZif, mas não a origem nem a atualidade das regras civis montadas em cada arquivo.
  • Bloco legado, tabela de 64 bits, truncamento, rodapé e expiração de saltos de segundo criam limites que o status “parseado” não revela.
  • O recibo liga intenção, zona, fonte e edição, objeto exato, período coberto, leitor, política de ambiguidade e ação real da aplicação.

Os dois processos abriram o mesmo arquivo. O mais antigo não viu nenhuma mudança de horário; o atual consultou outra metade do objeto.

Isso não é necessariamente corrupção. RFC 9636 preserva um bloco versão 1 na frente dos arquivos modernos para leitores obsoletos. O desenho mantém compatibilidade de transporte, mas obriga a operação a registrar qual camada produziu a resposta.

A RFC substitui a 8536, continua compatível e acrescenta a versão 4. Ela padroniza o formato, não a fonte dos dados. A base de fusos da IANA pode alimentar um TZif; o arquivo, porém, precisa carregar ao seu lado identidade e edição da fonte para que essa origem seja demonstrável.

O bloco de 2038 não é o contrato inteiro

Versão 1 usa tempos de transição de 32 bits, limitados aproximadamente a 1901–2038. Versão 2 ou superior acrescenta cabeçalho e bloco de 64 bits, além de um rodapé. O primeiro bloco pode ser apenas um placeholder. Nesse caso, o leitor antigo deve concluir que não existem mudanças nem abreviações.

Assim, “leitura bem-sucedida” não indica quais transições foram usadas. Guarde versão do formato, biblioteca, bloco escolhido, tamanho, validação dos contadores e índices, hash, fonte e release. Um offset isolado não reproduz a decisão.

O arquivo pode ser deliberadamente incompleto

As transições apontam para tipos locais com offset de UT, flag de horário de verão e designação. Cada tipo vale até a próxima transição. Depois da última, só um rodapé não vazio oferece uma regra; sem ele, a hora local é desconhecida.

TZDIST pode entregar dados truncados. Um arquivo assim é válido apenas dentro do intervalo marcado. Antes do começo, o tipo zero fica como não especificado. Depois do fim, -00 e rodapé vazio podem declarar que não há regra conhecida.

Esse “não sei” é informação útil. Se o produto repete o último offset, aplica o fuso da máquina ou escolhe UTC, acrescentou uma política local. Ela precisa de dono, versão e telemetria, porque o TZif não a forneceu.

O rodapé não antecipa o Diário Oficial

O rodapé pode conter uma regra POSIX para continuar o cálculo depois da última transição armazenada. Ele deve concordar com essa transição no ponto de emenda. A coerência prova apenas que o arquivo não muda de tipo no corte.

Uma autoridade pública ainda pode alterar o horário futuro. A fonte publica outra edição, e eventos já marcados precisam de política: preservar o instante, preservar a hora de parede ou pedir confirmação. Quem converte tudo para UTC e apaga zona e edição perde a intenção que permitiria decidir.

Abreviações não resolvem isso. CST é ambígua, e um mesmo offset pertence a zonas diferentes. A seleção da zona e sua origem são fatos separados do número final.

A versão 4 registra o prazo do conhecimento

Versão 4 permite truncar o início dos registros de salto de segundo e usar o último registro como expiração da tabela. Depois dessa data, a tabela não afirma se haverá outra correção.

O leitor pode recusar o cálculo ou seguir como se a expiração não existisse, talvez emitindo erro. Ambas as alternativas podem ser compatíveis, mas não têm o mesmo significado operacional. O painel deve distinguir resultado dentro da validade de resultado produzido apesar da validade vencida.

A Resolução 4 da 27ª CGPM trata do futuro dos saltos. Não prova qual tabela um host instalou nem qual ramo o código executou. Decisão institucional, artefato distribuído e comportamento real precisam de recibos próprios.

Integridade chega de fora

TZif não traz proteção de integridade ou sigilo. Os arrays contam elementos e exigem verificação de comprimento e limites. Na distribuição pública, TLS protege contra alteração em trânsito porque dados falsos podem afetar calendários e agendadores.

Mas TLS autentica um canal, não a atualização semântica. Fonte, release, URL, ETag, instante do download, hash, idade do cache e instalação formam a prova de distribuição. A consulta de zona pode revelar a localização de alguém, portanto o histórico de escolha não deve ser tratado como público só porque as regras são públicas.

RFC 3339 representa instante e offset; RFC 9557 pode anexar zona; RFC 5545 organiza calendários. Nenhuma inclui automaticamente o TZif exato e a política aplicada quando uma hora aparece duas vezes ou não existe.

O recibo termina no efeito

A cadeia começa na intenção civil e na zona escolhida. Passa por fonte, edição, bytes, intervalo, leitor, rodapé e expiração. Depois registra offset, ambiguidade e instante escolhido. Só então chega à decisão da aplicação e ao efeito: reunião aberta, manutenção iniciada, cobrança liquidada ou tarefa cancelada.

RFC 9636 tem autoridade sobre como os bytes descrevem transições. Não tem autoridade para escolher a cidade, adivinhar uma lei, atualizar o cache ou afirmar que o trabalho ocorreu.

Fontes