Leap Seconds

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 tempoBaseada emSegundos intercalares?Nota
TAIRelógios atómicos (segundos SI)NuncaContínua — 37 s à frente de UTC desde 2017
UT1Rotação da Terra (astronomia)O tempo solar de que UTC se mantém perto
UTCTAI, ajustado para UT1Sim (até ~2035)Tempo civil mundial
Tempo UnixUTC, mas 86 400 s por diaIgnoradosO 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.

FornecedorJanela de smearingNotas
Google24 horas, centrada na meia-noite UTCajuste ~11,6 µs/s
AWS24 horasAmazon Time Sync Service
Meta (Facebook)17 horas
Microsoft24 horasDesde 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.