12 pontos por winterjung 2022-11-26 | 4 comentários | Compartilhar no WhatsApp
  • Não que o UTC (Tempo Universal Coordenado) seja ruim
  • A Conferência Geral de Pesos e Medidas abolirá os segundos intercalares do UTC após 2035
  • Os segundos intercalares estão relacionados à rotação da Terra, que é irregular e imprevisível
  • Além do UTC, outro padrão de tempo importante é o TAI (Tempo Atômico Internacional), que não tem segundos intercalares
  • Como o UTC não é usado principalmente para engenharia, ele pode ter segundos intercalares, mas o tempo Unix deixou de ser linear por causa deles, o que causou muita confusão

Tempo Unix TAI

  • O tempo Unix TAI, que começa em 1º de janeiro de 1970 às 00:00:10, aumenta linearmente e tem propriedades matemáticas úteis, mas não é popular
  • É diferente do tempo Unix e não é um substituto direto
  • Em comparação com o tempo Unix
    • Por ser linear, é muito fácil calcular quando serão t + 1 segundo ou t + 100000000 segundos. No tempo Unix isso não pode ser calculado, já que não se sabe quando ocorrerão futuros segundos intercalares; só é possível fazer previsões
    • É fácil calcular a diferença entre dois timestamps
    • Calcular datas ou horários é difícil. Em geral, queremos saber a hora em UTC, não em TAI, então é preciso refletir os segundos intercalares
    • Não é ambíguo e retorna apenas valores válidos

Migrando para o tempo Unix TAI sem grandes incidentes

  • Propõe-se que o padrão POSIX divida o tempo em três tipos: tempo Unix, tempo Unix TAI+C e tempo Unix legado
  • O tempo Unix legado retorna o tempo Unix atual antes de um determinado momento e, depois disso, retorna o tempo Unix TAI+C
  • Como os segundos intercalares dependem de recursos online, faz sentido fazer a transição em 2035, quando eles serão abolidos

4 comentários

 
galadbran 2022-12-01

Achei que valeria a pena ler com mais detalhes, então fiz uma tradução meio improvisada!

https://weblog2.wafe.kr/posts/translation-unix-time-bad/

 
galadbran 2022-11-26

Quando falam em tempo Unix, estão se referindo simplesmente ao unix timestamp que usamos com frequência, certo?
Como é algo que eu sempre usei, nunca pensei muito nisso, mas então isso quer dizer que sistemas operacionais como o Linux fornecem timestamps refletindo os segundos intercalares passados? Isso foi algo enorme...

 
tribela 2022-11-27

É o contrário. Como o segundo bissexto é mais próximo de transformar 1 segundo real em um tempo que não existiu, em um SO ajustado para UTC, basta calcular com o timestamp para obter o Unix time, e, ao contrário, é preciso somar o segundo bissexto que existiu para obter o valor TAI.

 
winterjung 2022-11-26