Condividi tramite


Classe file_clock

Questo orologio può rappresentare l'intervallo e la risoluzione dei valori di ora file usati nel file system.

Sintassi

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

Osservazioni:

Nell'implementazione di Microsoft, il periodo o l'ora da cui inizia la file_clock misurazione del tempo è 1/1/1601 00:00:00.

Lo standard ISO C++ offre una scelta tra fornire to_sys() e from_sys()o to_utc() e from_utc(). L'implementazione Di Microsoft ha scelto to_utc e from_utc.

Membri

Nome Descrizione
from_utc Statico. Converte utc_time in file_time.
now Statico. Restituisce l'ora atomica internazionale corrente.
to_utc Statico. Converte un oggetto file_time in utc_time.

Membri non membri

Nome Descrizione
from_stream Analizzare un oggetto file_clock dal flusso specificato usando il formato specificato.
operator<< Output file_time nel flusso specificato.

Alias del tipo di praticità

Nome Descrizione
file_clock::duration Nell'implementazione di Microsoft, è un sinonimo di duration<long long, ratio<1, 10'000'000>. Rappresenta una durata del tempo misurata in unità di 100 nanosecondi.
file_clock::time_point Sinonimo di time_point<File_time_clock>. Utilizzato per rappresentare un oggetto time_point per questo orologio.
file_clock::period Nell'implementazione di Microsoft, è un sinonimo di ratio<1, 10'000'000>. Rappresenta il tempo in secondi (100 nanosecondi) tra ogni tick nella durata.
file_clock::rep Sinonimo del tipo (long long) utilizzato per rappresentare le unità integrali di questo orologio.file_clock::duration

Imparentato

Nome Descrizione
file_time Sinonimo di time_point<file_clock, Duration>. Rappresenta un oggetto time_point per un oggetto file_clock. Specificare .Duration Definito in std::chrono

Costanti pubbliche

Nome Descrizione
file_clock::is_steady constant Indica se il tipo di orologio è costante. Il valore è false.

Requisiti

Intestazione: <chrono> (da C++20)

Spazio dei nomi: std::chrono

Opzione del compilatore: /std:c++latest

from_utc

Metodo statico che converte un oggetto utc_time in un oggetto file_time.

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

Parametri

t
Oggetto utc_time da convertire.

Valore restituito

Oggetto file_time che rappresenta l'equivalente utc_time come t. Viene calcolato come utc_clock::to_sys(utc_time).time_since_epoch() meno il numero di secondi intercalari prima del 1° gennaio 2017 (27). Windows 10 versione 1809 e Windows Server 2019 hanno introdotto il supporto per i secondi intercalari. Tale supporto è abilitato per impostazione predefinita, anche se può essere disabilitato. Se abilitata, solo i secondi bisestile dopo luglio 2018 (non quelli compresi tra il 1° gennaio 2017 e luglio 2018) sono inclusi nel tempo.

È consigliabile usare std::chrono::clock_cast per convertire i punti di tempo tra gli orologi anziché chiamare direttamente questa funzione. Ciò è particolarmente rilevante perché file_clock lo standard ISO C++ consente a questo tipo di definire to_utc e from_utco e to_sys from_sys. Poiché l'implementazione può variare in base al fornitore, è possibile usare clock_cast invece, fornito da tutti i fornitori di librerie.

Esempio: 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

Metodo statico che converte un oggetto file_time in un oggetto utc_time.

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

Parametri

t
Oggetto file_time da convertire.

Valore restituito

Oggetto utc_time che rappresenta l'equivalente file_time come t. È consigliabile usare std::chrono::clock_cast per convertire i punti di tempo tra gli orologi, anziché chiamare direttamente questa funzione. Ciò è particolarmente rilevante perché file_clock lo standard ISO C++ consente a questo tipo di definire to_utc e from_utco e to_sys from_sys. Poiché l'implementazione può variare in base al fornitore, è possibile usare clock_cast invece, fornito da tutti i fornitori di librerie.

Esempio: 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

Valore statico che specifica se il tipo di clock è costante. Nell'implementazione di Microsoft è is_steady false. Questo rende questo orologio inadatto per misurare il tempo necessario per un'operazione perché un orologio invece può essere regolato mentre si sta tempondo qualcosa in modo che il tempo misurato possa essere spento o persino negativo. Usare invece un high_resolution_clock oggetto per l'ora degli eventi.

static const bool is_steady = false;

now

Metodo statico che restituisce l'ora di sistema corrente, con risoluzione nanosecondo, regolato dal periodo dell'oggetto file_clock.

static time_point now() noexcept;

Valore restituito

Oggetto time_point che rappresenta l'ora corrente.

Vedi anche

<chrono>
gps_clock class
high_resolution_clock
local_t Struct
steady_clock Struct
system_clock Struct
Classe tai_clock
Classe utc_clock
Riferimento file di intestazione