Partage via


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_timeen .

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_timeen .

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