Segundos intercalares: como UTC acompanha a rotação da Terra
Os segundos intercalares são ajustes de um segundo inseridos no UTC para alinhar o tempo dos relógios atómicos com a rotação cada vez mais lenta da Terra. Já fizeram cair grandes sistemas e está previsto aboli-los até 2035. Este guia explica o que são, como o tempo Unix lida com eles (sobretudo ignorando-os) e os padrões práticos que os sistemas usam para se manterem seguros.
Os segundos intercalares num minuto
Um segundo intercalar é um segundo extra adicionado ocasionalmente ao UTC para manter a hora a menos de 0,9 segundos de UT1 — o tempo definido pela rotação real da Terra. Os relógios atómicos batem a um ritmo perfeitamente constante, mas a Terra não gira a um ritmo perfeitamente constante, por isso os dois afastam-se e têm de ser ressincronizados. Houve 27 destas inserções desde 1972, a última a 31-12-2016, e os organismos de metrologia do mundo votaram retirá-los até 2035. Crucial: o tempo Unix ignora totalmente os segundos intercalares. A tabela abaixo mostra como se relacionam as principais escalas de tempo.
| Escala de tempo | Baseada em | Segundos intercalares? | Nota |
|---|---|---|---|
| TAI | Relógios atómicos (segundos SI) | Nunca | Contínua — 37 s à frente de UTC desde 2017 |
| UT1 | Rotação da Terra (astronomia) | — | O tempo solar de que UTC se mantém perto |
| UTC | TAI, ajustado para UT1 | Sim (até ~2035) | Tempo civil mundial |
| Tempo Unix | UTC, mas 86 400 s por dia | Ignorados | O que o código de aplicação usa |
O que é um segundo intercalar?
Um segundo intercalar é um segundo extra adicionado ao UTC para o manter a menos de 0,9 s de UT1 — o tempo astronómico, baseado na rotação da Terra. A rotação da Terra é irregular e abranda ligeiramente em escalas longas, por isso o UTC atómico e o UT1 rotacional afastam-se e têm de ser realinhados.
- Foram inseridos 27 segundos intercalares positivos entre 1972 e o último (01-01-2017)
- Nunca ocorreu um segundo intercalar negativo, mas um é teoricamente possível se a Terra acelerar
- O Boletim C do IERS anuncia os próximos segundos intercalares com pelo menos seis meses de antecedência
- Inserido mesmo no fim de um dia UTC (23:59:60), tipicamente a 30 de junho ou 31 de dezembro
Porque existem os segundos intercalares
O UTC foi redefinido em 1972 como um híbrido: o segundo SI (atómico), mantido a uma fração de segundo de UT1 (astronómico) por inserções ocasionais de segundos intercalares. O objetivo era manter a hora e o tempo solar mais ou menos alinhados sem se comprometer com nenhum dos sistemas puros.
- TAI: Tempo Atómico Internacional, uma contagem pura de segundos SI sem segundos intercalares (atualmente 37 s à frente de UTC)
- UT1: tempo rotacional, baseado em observações da orientação da Terra
- UTC: o híbrido — batimentos atómicos, periodicamente recalibrados para UT1
- Sem segundos intercalares, o UTC e o sol afastar-se-iam ~1 minuto por século
Segundos intercalares e tempo Unix
O tempo Unix POSIX está definido para ignorar os segundos intercalares: cada dia Unix tem exatamente 86 400 segundos. Quando ocorre um segundo intercalar, os sistemas lidam com ele de forma diferente — nenhum incrementa o timestamp Unix num segundo extra. É por isso que um timestamp Unix/POSIX acompanha o UTC mas não é uma contagem real de segundos físicos decorridos desde 1970.
- POSIX estrito: o número do segundo repete-se — 23:59:59 ocorre duas vezes, ambas mapeadas para o mesmo timestamp Unix
- Núcleo Linux antes de 2012: implementava POSIX estrito; surgiram muitos bugs (bloqueios de Java, MySQL, Hadoop)
- Núcleo Linux moderno: aplica o ajuste via clock_settime(); algumas implementações fazem smearing sobre uma janela
- Smearing: espalhar o segundo extra por horas ou um dia para que nenhum segundo seja repetido
Leap smearing
A maioria dos grandes serviços NTP públicos já não passa os segundos intercalares tal e qual aos clientes. Fazem smearing: o segundo extra é espalhado por uma janela para que os relógios cliente avancem muito ligeiramente mais depressa (ou mais devagar para um segundo negativo) do que o UTC durante a janela. O resultado: nenhum cliente vê alguma vez um 23:59:60 — ao custo de divergir brevemente do UTC estrito.
| Fornecedor | Janela de smearing | Notas |
|---|---|---|
| 24 horas, centrada na meia-noite UTC | ajuste ~11,6 µs/s | |
| AWS | 24 horas | Amazon Time Sync Service |
| Meta (Facebook) | 17 horas | — |
| Microsoft | 24 horas | Desde 2018 |
- O smearing faz com que os relógios cliente difiram do UTC estrito durante a janela — aceitável para aplicações, não para cronometragem de alta precisão
Poderia haver um segundo intercalar negativo?
Todos os segundos intercalares até agora foram positivos — adicionar um segundo. Mas desde cerca de 2020 a Terra tem girado um pouco mais depressa do que durante a maior parte do último meio século, reavivando brevemente a perspetiva outrora teórica de um segundo intercalar negativo: remover um segundo para que 23:59:58 seja diretamente seguido de 00:00:00. Seria o primeiro de sempre, e muitos sistemas que lidam com um segundo repetido ainda lidam mal com um segundo saltado. Investigação recente sugere que o degelo polar está a travar a aceleração e poderia empurrar qualquer segundo intercalar negativo para cerca de 2029 — altura em que a abolição de 2035 pode torná-lo irrelevante.
A abolição de 2035
A Conferência Geral de Pesos e Medidas (CGPM) votou em novembro de 2022 (Resolução 4) eliminar os segundos intercalares do UTC até 2035 o mais tardar. O plano substitui a tolerância UT1 de ±0,9 s por uma muito maior, deixando assim o UTC afastar-se do tempo solar ao longo de muitas décadas.
- 2022-11: Resolução 4 da CGPM — aumentar a diferença máxima UT1−UTC em, ou antes de, 2035
- 2023-11: a ITU-R WRC-23 chancela formalmente a decisão de metrologia
- Após a abolição, o UTC tornar-se-á uma escala de tempo puramente atómica ligada ao TAI por um desfasamento fixo
- As implementações têm até 2035 para retirar os caminhos de código que lidam com segundos intercalares
Referências relacionadas
FAQ
- Quantos segundos intercalares houve?
- Foram inseridos 27 segundos intercalares positivos no UTC entre 1972 e 01-01-2017. Nenhum desde então. Nunca ocorreu um segundo intercalar negativo.
- Qual é a diferença entre UTC e TAI?
- O TAI é tempo atómico contínuo sem segundos intercalares; o UTC é o TAI ajustado por segundos intercalares para se manter a menos de 0,9 s da rotação da Terra. Desde 2017, o TAI está exatamente 37 segundos à frente do UTC.
- Poderia haver um segundo intercalar negativo?
- É possível, mas nunca aconteceu. Desde cerca de 2020 a Terra tem girado ligeiramente mais depressa, o que em princípio poderia exigir remover um segundo em vez de o adicionar. A abolição prevista dos segundos intercalares em 2035 pode tornar a questão irrelevante.
- Os timestamps Unix passarão a incluir segundos intercalares depois de 2035?
- Não. O tempo Unix nunca contou segundos intercalares e nunca o fará. Após a abolição, o próprio UTC deixa de os adicionar, por isso o tempo Unix e o UTC ficarão simplesmente alinhados.
- Porque é que o Reddit e a Cloudflare caíram em dias de segundo intercalar?
- O núcleo Linux e bibliotecas Java tinham bugs que disparavam quando ocorria 23:59:60 — tipicamente ciclos infinitos, contenção de bloqueios ou matemática NaN devida a um "segundo negativo" em alguns caminhos de código.
- Qual é o desfasamento TAI−UTC atual?
- 37 segundos. Isto é, 27 segundos intercalares (desde 1972) mais um desfasamento inicial de 10 segundos estabelecido quando o UTC foi definido.