- 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
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/
Quando falam em tempo Unix, estão se referindo simplesmente ao
unix timestampque 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...
É 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.