Partilhar via


Classe file_clock

Esse relógio pode representar o intervalo e a resolução de valores de tempo de arquivo usados no sistema de arquivos.

Sintaxe

using file_clock = std::filesystem::_File_time_clock; // C++20

Comentários

Na implementação da Microsoft, a época ou a hora a partir da qual file_clock começa é 1/1/1601 00:00:00.

O ISO C++ Standard fornece uma opção entre fornecer to_sys() e from_sys(), ou to_utc() e from_utc(). A implementação da Microsoft escolheu to_utc e from_utc.

Membros

Nome Descrição
from_utc Estático. Converte uma utc_time em uma file_time.
now Estático. Retorna o tempo atômico internacional atual.
to_utc Estático. Converte um file_time em utc_time.

Não membros

Nome Descrição
from_stream Analise um file_clock do fluxo fornecido usando o formato especificado.
operator<< Envia file_time para o fluxo fornecido.

Aliases de tipo de conveniência

Nome Descrição
file_clock::duration Na implementação da Microsoft, isso é sinônimo de duration<long long, ratio<1, 10'000'000>. Isso representa uma duração de tempo medida em unidades de 100 nanossegundos.
file_clock::time_point Um sinônimo de time_point<File_time_clock>. Usado para representar um time_point para esse relógio.
file_clock::period Na implementação da Microsoft, isso é sinônimo de ratio<1, 10'000'000>. Representa o tempo em segundos (100 nanossegundos) entre cada tique na duração.
file_clock::rep Um sinônimo do tipo (long long) usado para representar as unidades integrais no relógio file_clock::duration.

Relacionado

Nome Descrição
file_time Um sinônimo de time_point<file_clock, Duration>. Representa um time_point para um file_clock. Você pode especificar o Duration. Definido em std::chrono

Constantes públicas

Nome Descrição
file_clock::is_steady constant Indica se o tipo de relógio é estável. Seu valor é false.

Requisitos

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

Namespace: std::chrono

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

from_utc

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

template <class Duration>
static file_time<common_type_t<_Duration, chrono::seconds>>
from_utc(const utc_time<Duration>& t);

Parâmetros

t
O utc_time a ser convertido.

Valor retornado

Um file_time que representa o utc_time equivalente como t. É calculado como utc_clock::to_sys(utc_time).time_since_epoch() menos o número de segundos bissextos antes de 1º de janeiro de 2017 (27). O Windows 10 versão 1809 e o Windows Server 2019 introduziram suporte para segundos bissextos. Esse suporte está habilitado por padrão, embora possa ser desabilitado. Quando habilitado, somente os segundos bissextos após julho de 2018 (não os entre 1º de janeiro de 2017 e julho de 2018) são incluídos no tempo.

Recomendamos usar std::chrono::clock_cast para converter pontos de tempo entre relógios em vez de chamar essa função diretamente. Isso é particularmente relevante para file_clock porque o ISO C++ Standard permite que esse tipo defina to_utc e from_utc, ou to_sys e from_sys. Como o que é implementado pode variar de acordo com o fornecedor, você pode usar clock_cast, que é fornecido por todos os fornecedores de biblioteca.

Exemplo: from_utc

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    std::cout << clock_cast<file_clock>(utc_clock::now());

    return 0;
}
2021-08-17 00:20:41.2594557

to_utc

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

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

Parâmetros

t
O file_time a ser convertido.

Valor de retorno

Um utc_time que representa o file_time equivalente como t. Recomendamos usar std::chrono::clock_cast para converter pontos de tempo entre relógios em vez de chamar essa função diretamente. Isso é particularmente relevante para file_clock porque o ISO C++ Standard permite que esse tipo defina to_utc e from_utc, ou to_sys e from_sys. Como o que é implementado pode variar de acordo com o fornecedor, você pode usar clock_cast, que é fornecido por todos os fornecedores de biblioteca.

Exemplo: to_utc

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    std::cout << clock_cast<std::chrono::utc_clock>(file_clock::now());

    return 0;
}
2021-08-17 00:20:41.2594557

is_steady

Valor estático que especifica se o tipo de relógio é estável. Na implementação da Microsoft, is_steady é false. Isso torna esse relógio inadequado para medir quanto tempo uma operação leva porque um relógio instável pode ser ajustado enquanto você está cronometrado algo para que o tempo medido possa estar desativado ou até mesmo ser negativo. Use high_resolution_clock para eventos de tempo, em vez disso.

static const bool is_steady = false;

now

Método estático que retorna o tempo atual do sistema, com resolução de nanossegundos, ajustado pela época do file_clock.

static time_point now() noexcept;

Valor de retorno

Um objeto time_point que representa a hora atual.

Confira também

<chrono>
gps_clock class
high_resolution_clock
Structlocal_t
Structsteady_clock
Structsystem_clock
tai_clock classe
utc_clock classe
Referência de Arquivos de Cabeçalho