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