Partilhar via


utc_clock classe

Um relógio para o Tempo Universal Coordenado (UTC), que às vezes é popularmente referido como Hora Média de Greenwich (GMT) ou hora Zulu. A hora local é ajustada a partir da hora UTC, dependendo do seu fuso horário.

Sintaxe

class utc_clock; // C++20

Observações

Este relógio mede o tempo desde as 00:00:00 UTC de quinta-feira, 1 de janeiro de 1970. Este relógio representa segundos bissextos e é a base para o tempo civil em todo o mundo.

A taxa de tempo UTC é baseada no Tempo Atômico Internacional (TAI), que usa relógios atômicos para rastrear o tempo. No entanto, um segundo bissexto é ocasionalmente adicionado à hora UTC para manter a diferença entre a hora UTC e UT1 (hora solar) dentro de +- 0,9 segundos.

Há uma discrepância entre o tempo mantido pelos relógios atômicos e o tempo mantido pelo acompanhamento da rotação da Terra. Isso porque a velocidade de rotação da Terra é irregular e, em geral, está diminuindo ao longo do tempo em cerca de um segundo a cada 1,5 anos (embora às vezes a velocidade de rotação da Terra aumente). Um ajuste de segundo bissexto mantém o tempo de rastreamento UTC dentro de um segundo da duração média de um dia.

Até o momento em que este artigo foi escrito, 27 segundos bissextos foram adicionados desde que a prática de inserir segundos bissextos começou em 1972. O International Earth Rotation and Reference Systems Service (IERS) determina quando um segundo bissexto será adicionado. Adicionar um segundo bissexto é referido como uma "inserção de segundo bissexto". Quando um segundo bissexto é inserido, o tempo, à medida que se aproxima da meia-noite, passa de 23 horas 59 minutos 59 segundos para 23 horas 59 minutos 60 segundos (o segundo bissexto inserido), e depois para 0 horas 0 minutos 0 segundos (meia-noite). Historicamente, os segundos bissextos são adicionados em 30 de junho ou 31 de dezembro.

A hora UTC, por definição, começa 10 segundos atrás da TAI (hora atômica). 10 segundos foram adicionados em 1972 ao tempo TAI para acomodar os segundos bissextos que haviam se acumulado até aquele ponto. Dada a inserção de mais 27 segundos bissextos desde então, o tempo UTC está atualmente 37 segundos atrás do tempo TAI (relógio atômico).

Membros

Nome Descrição
from_sys Estática. Converte um sys_time em um utc_time.
now Estática. Devolve a hora atual.
to_sys Estática. Converte um utc_time em um sys_time.

Não-membros

Nome Descrição
from_stream Analise a utc_time do fluxo fornecido usando o formato especificado.
get_leap_second_info Obtém um leap_second_info que indica se a hora fornecida especifica uma hora em que um segundo bissexto foi inserido. Inclui também a soma de todos os segundos bissextos entre 1 de janeiro de 1970 e a duração especificada.
operator<< Saída a utc_time para o fluxo dado.

Aliases de tipo de conveniência

Nome Descrição
utc_clock::duration Na implementação da Microsoft, é sinônimo duration<system_clock::rep, system_clock::period>de . Representa uma duração de tempo medida em unidades de 100 nanossegundos.
utc_clock::period A implementação da Microsoft define isso como sinônimo de system_clock::period. Representa o tempo em segundos (100 nanossegundos) entre cada tick na duração.
utc_clock::rep Um sinônimo para o tipo (long long) usado para representar as unidades integrais neste relógio.utc_clock::duration
utc_clock::time_point Sinónimo de time_point<utc_clock>. Usado para representar um time_point para este relógio.

Relacionados

Nome Descrição
utc_seconds Sinónimo de using utc_seconds = utc_time<seconds>;
utc_time Um sinônimo de template<class Duration> using utc_time = time_point<utc_clock, Duration>;Representa um time_point foro utc_clock. Você especifica a duração. Definido em std::chrono

Constantes Públicas

Nome Descrição
utc_clock::is_steady constante Indica se o tipo de relógio está estável. O seu valor é false.

Requerimentos

Cabeçalho:<chrono> (desde C++20)

Espaço de nomes: std::chrono

Opção do compilador:/std:c++latest

from_sys

Método estático que converte a sys_time em um utc_timearquivo .

template<class Duration>
static utc_time<common_type_t<Duration, seconds>>
from_sys(const sys_time<Duration>& t);

Parâmetros

t
O sys_time para converter.

Valor de retorno

Um utc_time conjunto para o tempo que mais se aproxima do sys_timet. Se não existir um mapeamento direto, o time_point durante a inserção de um segundo bissexto e o último valor representável de antes da sys_time inserção do segundo bissexto são retornados.

to_sys

Método estático que converte a utc_time em um sys_timearquivo .

template<class Duration>
static sys_time<common_type_t<Duration, seconds>>
to_sys(const utc_time<Duration>& t);

Parâmetros

t
O utc_time para converter.

Valor de retorno

O sys_time conjunto para o ponto no tempo equivalente como t. Se um mapeamento direto não existir, é o último valor representável antes da inserção de um segundo bissexto no caso que representa um ponto no tempo em que t um segundo bissexto foi inserido. Adicionar um segundo bissexto é referido como uma "inserção de segundo bissexto". Quando um segundo bissexto é inserido, o tempo que se aproxima da meia-noite passa de 23 horas 59 minutos 59 segundos para 23 horas 59 minutos e 60 segundos (o segundo bissexto inserido), e depois para 0 horas 0 minutos 0 segundos (meia-noite). No passado, os segundos bissextos eram adicionados em 30 de junho ou 31 de dezembro.

is_steady

Valor estático que especifica se o tipo de relógio é estável. Na implementação da Microsoft, is_steady_constant é false. Como o utc_clock relógio não é estável, você não pode usar esse relógio de forma confiável para pegar o tempo antes de um evento, o tempo depois de um evento, e subtraí-los para obter a duração do evento, porque o relógio pode ser ajustado durante esse tempo.

static const bool is_steady = false;

now

Método estático que retorna a hora UTC atual. O tempo devolvido inclui segundos bissextos.

static time_point now() noexcept;

Valor de retorno

Um time_point objeto que representa a hora atual. O ponto de tempo retornado é efetivamente from_sys(system_clock::now()).

Ver também

<chrono>
file_clock class
gps_clock class
high_resolution_clock
local_t estruturar
steady_clock estruturar
system_clock estruturar
tai_clock Classe
de referência de arquivos de cabeçalho