Classe zoned_time
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
Notes
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 | Description |
---|---|
Constructeurs | Construisez 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_time fichier . |
operator= |
Affectez la valeur d’un autre zoned_time , ou d’un autre ou sys_time d’un local_time autre zoned_time à ceci zoned_time . |
operator local_time |
Combine le zoned_time fuseau 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 | Description |
---|---|
operator== |
Déterminez si deux zoned_time instances sont égales. |
operator<< |
Sortie d’un zoned_time flux donné. |
Alias de type pratique
Nom | Description |
---|---|
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
Construisez 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_zone
std::move(z)
-à-dire dans la construction zoned_time
.
zt
Pointeur zoned_time
qui est std::move(zt)
'd dans la construction zoned_time
.
Notes
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, , c
n’a aucun effet.
14) Initialise le fuseau horaire à partir du fuseau horaire et du y
point de temps.
15) Initialise le fuseau horaire avec std::move(z)
et l’heure du point de y
temps.
16) Équivalent à la construction avec {z, y}
. Le choose
paramètre, , c
n’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_time
du 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_time
system_clock
fichier .
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 la time_zone stockée dans ce zoned_time
fichier .
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_time
sys_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_time
fichier .
lt
À local_time
affecter à l’objet stocké time_point
dans ce zoned_time
fichier .
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
Notes
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 au [time_point
] dans ce zoned_time
. Après l’affectation, *this->get_local_time() == lt;
operator local_time
Combine le zoned_time
fuseau 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
Struct zoned_traits
Informations de référence sur les fichiers d’en-tête
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour