Classe utc_clock
Un orologio per l'ora UTC (Coordinated Universal Time), talvolta noto come ora GMT (Greenwich Mean Time) o Zulu. L'ora locale viene modificata dall'ora UTC a seconda del fuso orario.
Sintassi
class utc_clock; // C++20
Osservazioni:
Questo orologio misura l'ora dalle 00:00:00 UTC di giovedì 1 gennaio 1970. Questo orologio rappresenta i secondi bisestile ed è la base per il tempo civile in tutto il mondo.
La frequenza dell'ora UTC si basa sull'ora atomica internazionale (TAI) che usa orologi atomici per tenere traccia dell'ora. Tuttavia, un secondo bisestile viene occasionalmente aggiunto all'ora UTC per mantenere la differenza tra l'ora UTC e l'ora solare UT1 entro +- 0,9 secondi.
C'è una discrepanza tra il tempo mantenuto dagli orologi atomici e il tempo mantenuto tenendo traccia della rotazione della terra. Questo perché la velocità di rotazione della terra è irregolare, e in generale rallenta nel tempo di circa un secondo ogni 1,5 anni (anche se talvolta la velocità di rotazione della terra aumenta). Una seconda regolazione del salto mantiene l'ora di rilevamento UTC entro un secondo della lunghezza media di un giorno.
A partire da questo articolo, sono stati aggiunti 27 secondi bisestile fin dall'inizio della pratica di inserimento dei secondi bisestile nel 1972. Il Servizio IERS (International Earth Rotation and Reference Systems Service) determina quando verrà aggiunto un secondo salto. L'aggiunta di un secondo salto viene definita "inserimento bisestile". Quando viene inserito un secondo bisestile, l'ora, quasi a mezzanotte, procede da 23 ore 59 minuti a 59 secondi fino a 23 ore 59 minuti 60 secondi (secondo salto inserito) e quindi a 0 ore 0 minuti 0 secondi (mezzanotte). Storicamente, i secondi bisestile sono stati aggiunti il 30 giugno o il 31 dicembre.
L'ora UTC, per definizione, inizia 10 secondi dietro TAI (ora atomica). 10 secondi sono stati aggiunti nel 1972 al tempo TAI per contenere i secondi intercalari accumulati da quel punto. Dato l'inserimento di altri 27 secondi intercalari da allora, l'ora UTC è attualmente di 37 secondi dietro l'ora TAI (orologio atomico).
Membri
Nome | Descrizione |
---|---|
from_sys |
Statico. Converte sys_time in utc_time . |
now |
Statico. Restituisce l'ora corrente. |
to_sys |
Statico. Converte utc_time in sys_time . |
Membri non membri
Nome | Descrizione |
---|---|
from_stream |
Analizzare un oggetto utc_time dal flusso specificato usando il formato specificato. |
get_leap_second_info |
Ottiene un leap_second_info che indica se l'ora specificata specifica un'ora in cui è stato inserito un secondo bisestile. Include anche la somma di tutti i secondi intercalari tra il 1° gennaio 1970 e la durata specificata. |
operator<< |
Restituisce un oggetto utc_time nel flusso specificato. |
Alias del tipo di praticità
Nome | Descrizione |
---|---|
utc_clock::duration |
Nell'implementazione di Microsoft, è un sinonimo di duration<system_clock::rep, system_clock::period> . Rappresenta una durata del tempo misurata in unità di 100 nanosecondi. |
utc_clock::period |
L'implementazione di Microsoft lo definisce come sinonimo di system_clock::period . Rappresenta il tempo in secondi (100 nanosecondi) tra ogni tick nella durata. |
utc_clock::rep |
Sinonimo del tipo (long long ) utilizzato per rappresentare le unità integrali di questo orologio.utc_clock::duration |
utc_clock::time_point |
Sinonimo di time_point<utc_clock> . Utilizzato per rappresentare un oggetto time_point per questo orologio. |
Imparentato
Nome | Descrizione |
---|---|
utc_seconds |
Sinonimo di using utc_seconds = utc_time<seconds>; |
utc_time |
Sinonimo di template<class Duration> using utc_time = time_point<utc_clock, Duration>; Rappresenta un oggetto time_point per un oggetto utc_clock . Specificare la durata. Definito in std::chrono |
Costanti pubbliche
Nome | Descrizione |
---|---|
[utc_clock::is_steady constant] (#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_sys
Metodo statico che converte un oggetto sys_time
in un oggetto utc_time
.
template<class Duration>
static utc_time<common_type_t<Duration, seconds>>
from_sys(const sys_time<Duration>& t);
Parametri
t
Oggetto sys_time
da convertire.
Valore restituito
Oggetto utc_time
impostato sul tempo più vicino all'oggetto sys_time
t
. Se non esiste un mapping diretto, viene restituito il time_point durante un secondo inserimento leap e l'ultimo valore rappresentabile di sys_time
prima dell'inserimento del secondo salto.
to_sys
Metodo statico che converte un oggetto utc_time
in un oggetto sys_time
.
template<class Duration>
static sys_time<common_type_t<Duration, seconds>>
to_sys(const utc_time<Duration>& t);
Parametri
t
Oggetto utc_time
da convertire.
Valore restituito
Oggetto sys_time
impostato sul punto nel tempo equivalente come t
. Se non esiste un mapping diretto, è l'ultimo valore rappresentabile prima dell'inserimento di un secondo salto nel caso che t
rappresenti un punto nel tempo in cui è stato inserito un secondo salto. L'aggiunta di un secondo salto viene definita "inserimento bisestile". Quando viene inserito un secondo bisestile, l'ora che si avvicina alla mezzanotte procede da 23 ore 59 minuti 59 secondi a 23 ore 59 minuti 60 secondi (secondo salto inserito) e quindi a 0 ore 0 minuti 0 secondi (mezzanotte). In passato sono stati aggiunti secondi bisestile il 30 giugno o il 31 dicembre.
is_steady
Valore statico che specifica se il tipo di clock è costante. Nell'implementazione di Microsoft è is_steady_constant
false
. Poiché non utc_clock
è costante, non è possibile usare questo orologio in modo affidabile per impiegare il tempo prima di un evento, l'ora dopo un evento e sottraerle per ottenere la durata dell'evento perché l'orologio può essere regolato durante tale tempo.
static const bool is_steady = false;
now
Metodo statico che restituisce l'ora UTC corrente. Il tempo restituito include secondi intercalari.
static time_point now() noexcept;
Valore restituito
Oggetto time_point
che rappresenta l'ora corrente. Il punto di tempo restituito è effettivamente from_sys(system_clock::now())
.
Vedi anche
<chrono>
file_clock class
gps_clock class
high_resolution_clock
local_t
Struct
steady_clock
Struct
system_clock
Struct
Classe tai_clock
Riferimento file di intestazione