Classe utc_clock
Horloge pour l’heure universelle coordonnée (UTC) qui est parfois connue sous le nom de Temps moyen de Greenwich (GMT) ou heure Zulu. L’heure locale est ajustée à partir de l’heure UTC en fonction de votre fuseau horaire.
Syntaxe
class utc_clock; // C++20
Notes
Cette horloge mesure l’heure depuis 00:00:00 UTC le jeudi 1er janvier 1970. Cette horloge compte pour les secondes bissextiles et est la base du temps civil dans le monde entier.
Le taux de temps UTC est basé sur le temps atomique international (TAI) qui utilise des horloges atomiques pour suivre l’heure. Toutefois, une seconde de saut est parfois ajoutée à l’heure UTC pour conserver la différence entre l’heure UTC et l’heure UT1 (temps solaire) dans +- 0,9 secondes.
Il y a une différence entre l’heure conservée par les horloges atomiques et l’heure conservée par le suivi de la rotation de la terre. C’est parce que la vitesse de rotation de la terre est irrégulière et, en général, ralentit au fil du temps d’environ une seconde toutes les 1,5 ans (bien que parfois la vitesse de rotation de la terre augmente). Un ajustement de seconde bissextile maintient le temps de suivi UTC dans une seconde de la durée moyenne d’un jour.
À partir de cette écriture, 27 secondes de saut ont été ajoutées depuis que la pratique de l’insertion de secondes bissextiles a commencé en 1972. L’International Earth Rotation and Reference Systems Service (IERS) détermine quand une seconde de saut sera ajoutée. L’ajout d’une seconde bissextile est appelé « insertion de seconde de saut ». Lorsqu’une seconde de saut est insérée, l’heure, comme elle approche minuit, passe de 23 heures 59 minutes 59 secondes à 23 heures 59 minutes 60 secondes (la seconde saut insérée), puis à 0 heures 0 minutes 0 secondes (minuit). Historiquement, des secondes de saut ont été ajoutées le 30 juin ou le 31 décembre.
L’heure UTC, par définition, démarre 10 secondes derrière TAI (heure atomique). 10 secondes ont été ajoutées en 1972 au temps de tai pour prendre en charge les secondes de saut qui avaient accumulé à ce point. Compte tenu de l’insertion d’une autre durée de 27 secondes bissextiles depuis lors, l’heure UTC est actuellement de 37 secondes derrière l’heure TAI (horloge atomique).
Membres
Nom | Description |
---|---|
from_sys |
Statique. Convertit une sys_time en une utc_time . |
now |
Statique. Retourne l'heure actuelle. |
to_sys |
Statique. Convertit une utc_time en une sys_time . |
Non-membres
Nom | Description |
---|---|
from_stream |
Analysez une utc_time valeur à partir du flux donné à l’aide du format spécifié. |
get_leap_second_info |
Obtient une leap_second_info qui indique si l’heure fournie spécifie une heure à laquelle une seconde de saut a été insérée. Il inclut également la somme de toutes les secondes de saut entre le 1er janvier 1970 et la durée spécifiée. |
operator<< |
Sortie d’un utc_time flux donné. |
Alias de type pratique
Nom | Description |
---|---|
utc_clock::duration |
Dans l’implémentation de Microsoft, il s’agit d’un synonyme de duration<system_clock::rep, system_clock::period> . Il représente une durée de temps mesurée en unités de 100 nanosecondes. |
utc_clock::period |
L’implémentation de Microsoft définit cela comme synonyme de system_clock::period . Il représente la durée en secondes (100 nanosecondes) entre chaque graduation dans la durée. |
utc_clock::rep |
Synonyme du type (long long ) utilisé pour représenter les unités intégrales dans cette horloge utc_clock::duration . |
utc_clock::time_point |
Synonyme de time_point<utc_clock> . Utilisé pour représenter une time_point horloge. |
Associé
Nom | Description |
---|---|
utc_seconds |
Synonyme de using utc_seconds = utc_time<seconds>; |
utc_time |
Synonyme de template<class Duration> using utc_time = time_point<utc_clock, Duration>; Représente un time_point pour un utc_clock . Vous spécifiez la durée. Défini dans std::chrono |
Constantes publiques
Nom | Description |
---|---|
[utc_clock::is_steady constant] (#is_steady_constant) |
Indique si le type d’horloge est stable. Sa valeur est de false . |
Spécifications
En-tête : <chrono>
(depuis C++20)
Espace de noms : std::chrono
Option du compilateur : /std:c++latest
from_sys
Méthode statique qui convertit un sys_time
utc_time
en .
template<class Duration>
static utc_time<common_type_t<Duration, seconds>>
from_sys(const sys_time<Duration>& t);
Paramètres
t
sys_time
à convertir.
Valeur retournée
Une utc_time
valeur définie à l’heure qui se rapproche le plus étroitement du sys_time
t
. Si un mappage direct n’existe pas, la time_point pendant une deuxième insertion de saut et la dernière valeur représentée avant sys_time
l’insertion du deuxième saut est retournée.
to_sys
Méthode statique qui convertit un utc_time
sys_time
en .
template<class Duration>
static sys_time<common_type_t<Duration, seconds>>
to_sys(const utc_time<Duration>& t);
Paramètres
t
utc_time
à convertir.
Valeur de retour
Défini sys_time
sur le point équivalent dans le temps en tant que t
. Si un mappage direct n’existe pas, il s’agit de la dernière valeur représentée avant l’insertion d’une seconde bissextile dans le cas qui t
représente un point dans le temps où une seconde de saut a été insérée. L’ajout d’une seconde bissextile est appelé « insertion de seconde de saut ». Lorsqu’une seconde bissextile est insérée, l’heure à laquelle elle s’approche de minuit passe de 23 heures 59 minutes 59 secondes à 23 heures 59 minutes 60 secondes (la seconde bissextile insérée), puis à 0 heures 0 minutes 0 secondes (minuit). Dans le passé, des secondes de saut ont été ajoutées le 30 juin ou le 31 décembre.
is_steady
Valeur statique qui spécifie si le type d’horloge est stable. Dans l’implémentation de Microsoft, is_steady_constant
est false
. Comme le utc_clock
n’est pas stable, vous ne pouvez pas utiliser cette horloge de manière fiable pour prendre le temps avant un événement, l’heure après un événement et les soustraire pour obtenir la durée de l’événement, car l’horloge peut être ajustée pendant cette période.
static const bool is_steady = false;
now
Méthode statique qui retourne l’heure UTC actuelle. Le temps retourné inclut des secondes de saut.
static time_point now() noexcept;
Valeur de retour
Objet time_point
qui représente l’heure actuelle. Le point de temps retourné est effectivement from_sys(system_clock::now())
.
Voir aussi
<chrono>
file_clock class
gps_clock class
high_resolution_clock
Struct local_t
Struct steady_clock
Struct system_clock
tai_clock
, classe
Informations de référence sur les fichiers d’en-tête