Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Classe
A zoned_time est un jumelage d’un time_zone et d’un time_point. Il donne une time_point signification dans un fuseau horaire spécifique.
Syntaxe
template<class Duration, class TimeZonePtr = const time_zone*>
class zoned_time ; // C++20
Remarques
A zoned_time fait toujours référence à un fuseau horaire valide et représente un point dans le temps qui existe et n’est pas ambigu dans ce fuseau horaire.
Membres
| Nom | Descriptif |
|---|---|
| Constructeurs | Construire un zoned_time. |
get_info |
Utilise le fuseau horaire dans ce zoned_time cas pour obtenir des informations sur le point de temps dans le zoned_time. |
get_local_time |
Combine le fuseau horaire dans le zoned_time fuseau horaire avec le point de temps stocké pour produire l’heure locale dans ce fuseau horaire. |
get_sys_time |
Obtient le point de temps stocké dans ce zoned_time cas sans appliquer le fuseau horaire. |
get_time_zone |
Obtient le time_zone stocké dans ce zoned_timefichier . |
operator= |
Affectez la valeur d’un autre zoned_time, ou d’un autre ou zoned_timed’un local_time autre sys_timeà ceci zoned_time. |
operator local_time |
Combine le zoned_timefuseau horaire du fuseau horaire avec le point de temps stocké pour produire l’heure locale dans ce fuseau horaire. |
operator sys_time |
Obtient l’heure stockée dans ce zoned_time domaine sans appliquer le fuseau horaire. |
Non-membres
| Nom | Descriptif |
|---|---|
operator== |
Déterminez si deux zoned_time instances sont égales. |
operator<< |
Sortie d’un zoned_time flux donné. |
Alias de type pratique
| Nom | Descriptif |
|---|---|
zoned_seconds |
Synonyme de zoned_time<seconds>; |
zoned_time::duration |
Durée mesurée en secondes. C’est un synonyme de common_type_t<Duration, seconds>; |
Spécifications
En-tête :<chrono>
Microsoft C++ prend en charge la zoned_time classe à partir de Visual Studio 2019 version 16.10.
Les données de fuseau horaire sont disponibles uniquement pour Windows 10 version 1903/19H1 et ultérieures, et Windows Server 2022 et versions ultérieures.
Espace de noms : std::chrono
Option du compilateur :/std:c++latest
Constructeurs
Construire un zoned_time.
1) zoned_time();
2) zoned_time(const zoned_time& zt) = default;
3) explicit zoned_time(TimeZonePtr z);
4) zoned_time(const sys_time<Duration>& st);
5) explicit zoned_time(string_view name);
6) zoned_time(TimeZonePtr z, const local_time<Duration>& tp);
7) zoned_time(TimeZonePtr z, const local_time<Duration>& tp, choose c);
8) zoned_time(TimeZonePtr z, const sys_time<Duration>& st);
9) zoned_time(string_view name, const local_time<Duration>& tp);
10) zoned_time(string_view name, const local_time<Duration>& tp, choose c);
11) zoned_time(string_view name, const sys_time<Duration>& st);
12) template<class Duration, class TimeZonePtr> zoned_time(string_view name, const zoned_time<Duration>& y);
13) template<class Duration, class TimeZonePtr> zoned_time(string_view name, const zoned_time<Duration>& y, choose c);
14) template<class Duration> zoned_time(const zoned_time<Duration, TimeZonePtr>& y);
15) template<class Duration, class TimeZonePtr> zoned_time(TimeZonePtr z, const zoned_time<Duration, TimeZonePtr>& y);
16) template<class Duration, class TimeZonePtr> zoned_time(TimeZonePtr z, const zoned_time<Duration, TimeZonePtr>& y, choose);
Paramètres
c
Indique comment gérer les heures locales ambiguës ou inexistantes lors de la conversion d’un local_time en .sys_time Pour plus d’informations, consultez choose énumération.
name
Nom d’un fuseau horaire.
st
Avec sys_time une durée spécifiée. Utilisé pour définir l’heure.
tp
Avec local_time une durée spécifiée. Utilisé pour définir l’heure.
y
Copié zoned_time pour construire un nouveau zoned_time.
z
C’est time_zonestd::move(z)-à-dire dans la construction zoned_time.
zt
Pointeur zoned_time qui est std::move(zt)'d dans la construction zoned_time.
Remarques
1) Initialise le fuseau horaire avec traits::default_zone(), et construit par défaut le point de temps.
2) Constructeur de copie par défaut.
3) Initialise le fuseau horaire avec std::move(z), et construit par défaut le point de temps.
4) Initialise le fuseau horaire avec traits::default_zone(), et l’heure avec st.
5) Initialise le fuseau horaire avec traits::locate_zone(name) et construit par défaut le point de temps.
6) Initialise le fuseau horaire avec std::move(z), et l’heure en convertissant tp comme si par z->to_sys(tp).
7) Initialise le fuseau horaire avec std::move(z), et l’heure comme si .z->to_sys(tp, c) Consultez choose l’énumération pour savoir comment le paramètre c affecte le résultat.
8) Initialise le fuseau horaire avec std::move(z), et l’heure avec st.
9) Équivalent à la construction avec {traits::locate_zone(name), tp}.
10) Équivalent à la construction avec {traits::locate_zone(name), tp, c}.
11) Équivalent à la construction avec {traits::locate_zone(name), st}.
12) Équivalent à la construction avec {traits::locate_zone(name), y}.
13) Équivalent à la construction avec {traits::locate_zone(name), y, c}. Le choose paramètre, , cn’a aucun effet.
14) Initialise le fuseau horaire à partir du fuseau horaire et du ypoint de temps.
15) Initialise le fuseau horaire avec std::move(z) et l’heure du point de ytemps.
16) Équivalent à la construction avec {z, y}. Le choose paramètre, , cn’a aucun effet.
Remarque
zoned_time n’a pas de constructeur de déplacement. La tentative de déplacement entraîne une copie à l’aide du constructeur de copie par défaut.
Exemple : construire un zoned_time
L’exemple suivant montre comment créer une zoned_time instance pour le fuseau horaire "Antarctica/Casey", le 15/09/2021 à 14h45 :
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
zoned_time zt("Antarctica/Casey", sys_days{2021y/September/15d}+16h+45min);
std::cout << zt;
return 0;
}
2021-09-16 03:45:00 GMT+11
get_info
Utilise le fuseau horaire dans ce zoned_time cas pour obtenir des informations sur le point de temps dans le zoned_time.
sys_info get_info() const;
Valeur retournée
Qui sys_info contient le décalage UTC pour le fuseau horaire et l’heure, le décalage d’ajustement de l’heure d’été, et ainsi de suite.
Exemple : get_info
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
zoned_time zt("Antarctica/Casey", sys_days{2021y/September/15d}+16h+45min);
sys_info si = zt.get_info();
std::cout << si;
return 0;
}
begin: 2020-10-03 16:01:00, end: 32767-12-31 23:59:59, offset: 39600s, save: 0min, abbrev: GMT+11
get_local_time
Obtient un local_time<duration> qui représente l’heure locale en fonction zoned_timedu fuseau horaire et du point de temps.
local_time<duration> get_local_time() const;
Valeur retournée
Le retour local_time est un synonyme de time_point<local_t, duration>.
Exemple : get_local_time
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
zoned_time zt("Antarctica/Casey", sys_days{2021y/September/15d}+16h+45min);
std::cout << zt.get_info();
return 0;
}
2021-09-16 03:45:00
get_sys_time
Obtient l’heure stockée dans le zoned_timesystem_clockfichier .
sys_time<duration> get_sys_time() const;
Valeur retournée
Heure stockée dans ce zoned_time, sans ajustement pour le fuseau horaire. Il représente l’heure du mur à l’échelle du système en tant que time_point. Le retour sys_time est un synonyme de template <class Duration> time_point<system_clock Duration>;
Exemple : get_sys_time
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
zoned_time zt("Antarctica/Casey", sys_days{2021y/September/15d}+16h+45min);
std::cout << zt.get_sys_time();
return 0;
}
2021-09-15 16:45:00
get_time_zone
Obtient le fuseau horaire stocké dans ce zoned_time.
TimeZonePtr get_time_zone() const;
Valeur retournée
Pointeur vers le time_zone stocké dans ce zoned_timefichier .
Exemple : get_time_zone
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
zoned_time zt("Antarctica/Casey", sys_days{2021y/September/15d}+16h+45min);
auto pTZ = zt.get_time_zone();
std::cout << pTZ->name();
return 0;
}
Antarctica/Casey
operator=
Attribuez-en zoned_time un autre this . Ou affecter simplement les autres zoned_timesys_time ou local_time.
1) zoned_time& operator=(const zoned_time& zt) = default;
2) zoned_time& operator=(const sys_time<Duration>& st);
3) zoned_time& operator=(const local_time<Duration>& lt);
Paramètres
zt
À zoned_time attribuer à this un.
st
À sys_time affecter à l’objet stocké time_point dans ce zoned_timefichier .
lt
À local_time affecter à l’objet stocké time_point dans ce zoned_timefichier .
Valeur retournée
*this
Exemple : operator=
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
zoned_time zt1{}, zt2("Pacific/Galapagos", sys_days{2021y/September/15d} + 16h + 45min);
std::cout << zt2.get_local_time() << "\n";
zt1 = zt2.get_local_time();
std::cout << zt1.get_local_time();
return 0;
}
2021-09-15 10:45:00
2021-09-15 10:45:00
Remarques
1) Opérateur d’affectation de copie par défaut. Copie (ne déplace pas) le pointeur stocké time_point et time_zone de l’autre zoned_time vers cet objet zoned_time.
2) Assigne st au time_point présent zoned_time. Après l’affectation, *this->get_sys_time() == st; 3) Convertit lt (a local_time) en un sys_time. Il fait cela essentiellement comme timeZone->to_sys(lt), et affecte le résultat à l’in time_point this zoned_time. Après l’affectation, *this->get_local_time() == lt;
operator local_time
Combine le zoned_timefuseau horaire du fuseau horaire avec le point de temps stocké pour produire l’heure locale dans ce fuseau horaire.
explicit operator local_time<duration>() const;
Valeur retournée
Qui time_point<local_t, Duration> représente l’heure locale pour le fuseau horaire et le fuseau horaire dans ce zoned_time. Vous pouvez utiliser l’alias local_time pratique pour représenter une valeur retournée par cette fonction.
La valeur de retour est effectivement timeZone->to_local(get_sys_time());
Exemple : operator local_time
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
zoned_time zt("Pacific/Galapagos", sys_days{ 2021y / September / 15d } + 16h + 45min);
std::cout << (local_time<seconds>)zt;
return 0;
}
2021-09-15 10:45:00
operator sys_time
Obtient le point de temps stocké dans ce zoned_time cas sans appliquer le fuseau horaire.
operator sys_time<duration>() const;
Valeur retournée
Heure stockée dans ce zoned_time, sans ajustement pour le fuseau horaire. Le retour sys_time est un synonyme et template <class Duration> time_point<system_clock Duration>; représente le même point dans le temps que celui stocké dans ce zoned_time.
Exemple : operator sys_time
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
zoned_time zt("Pacific/Galapagos", sys_days{2021y/September/15d} + 16h + 45min);
std::cout << (sys_time<seconds>)zt;
return 0;
}
2021-09-15 16:45:00
Voir aussi
<chrono>
time_point
time_zone
zoned_traits Struct
Informations de référence sur les fichiers d’en-tête