Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
A zoned_time ist eine Kombination aus einem time_zone und einem time_point. Es gibt eine time_point Bedeutung innerhalb einer bestimmten Zeitzone.
Syntax
template<class Duration, class TimeZonePtr = const time_zone*>
class zoned_time ; // C++20
Bemerkungen
A zoned_time always refers to a valid time zone and represents a point in time that exists and isn't mehrbiguous in that time zone.
Elemente
| Name | BESCHREIBUNG |
|---|---|
| Erbauer | Erstellen eines zoned_time. |
get_info |
Verwendet die Zeitzone in diesem zoned_time Bereich, um Informationen zum Zeitpunkt in der zoned_time. |
get_local_time |
Kombiniert die Zeitzone mit zoned_time dem gespeicherten Zeitpunkt, um die lokale Zeit in dieser Zeitzone zu erzeugen. |
get_sys_time |
Ruft den in diesem zoned_time Bereich gespeicherten Zeitpunkt ab, ohne die Zeitzone anzuwenden. |
get_time_zone |
Ruft die in diesem zoned_timegespeicherten time_zone ab. |
operator= |
Weisen Sie den Wert eines anderen oder eines anderen zoned_timezoned_timeOder eines local_timesys_time anderen zu.zoned_time |
operator local_time |
Kombiniert die zoned_timeZeitzone mit dem gespeicherten Zeitpunkt, um die Ortszeit in dieser Zeitzone zu erzeugen. |
operator sys_time |
Ruft die in dieser zoned_time Zeit gespeicherte Zeit ab, ohne die Zeitzone anzuwenden. |
Nicht-Member
| Name | BESCHREIBUNG |
|---|---|
operator== |
Hiermit wird bestimmt, ob zwei zoned_time-Instanzen gleich sind. |
operator<< |
Gibt einen zoned_time an den angegebenen Datenstrom aus. |
Komforttypaliasen
| Name | BESCHREIBUNG |
|---|---|
zoned_seconds |
Ein Synonym für zoned_time<seconds>; |
zoned_time::duration |
Eine in Sekunden gemessene Dauer. Es ist ein Synonym für common_type_t<Duration, seconds>; |
Anforderungen
Kopfball:<chrono>
Microsoft C++ unterstützt die zoned_time Klasse ab Visual Studio 2019, Version 16.10.
Zeitzonendaten sind nur für Windows 10, Version 1903/19H1 und höher, und Windows Server 2022 und höher verfügbar.
Namespace:std::chrono
Compileroption:/std:c++latest
Erbauer
Erstellen eines 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);
Die Parameter
c
Gibt an, wie mehrdeutige oder nicht vorhandene lokale Zeiten beim Konvertieren einer local_time in ein sys_time. Weitere Informationen finden Sie in choose der Enumeration.
name
Der Name einer Zeitzone.
st
A sys_time mit einer angegebenen Dauer. Wird verwendet, um die Uhrzeit festzulegen.
tp
A local_time mit einer angegebenen Dauer. Wird verwendet, um die Uhrzeit festzulegen.
y
Ein zoned_time kopiertes , um ein neues zoned_timezu erstellen .
z
Das time_zone ist std::move(z)'d in den konstruierten zoned_time.
zt
Ein zoned_time Zeiger, std::move(zt)der 'd in den konstruierten zoned_time.
Bemerkungen
1) Initialisiert die Zeitzone mit traits::default_zone()und erstellt standardmäßig den Zeitpunkt.
2) Der Standardkopie-Konstruktor.
3) Initialisiert die Zeitzone mit std::move(z)und erstellt standardmäßig den Zeitpunkt.
4) Initialisiert die Zeitzone mit traits::default_zone(), und die Uhrzeit mit st.
5) Initialisiert die Zeitzone mit traits::locate_zone(name) und erstellt standardmäßig den Zeitpunkt.
6) Initialisiert die Zeitzone mit std::move(z), und die Zeit, indem sie wie folgt tpkonvertiert wirdz->to_sys(tp).
7) Initialisiert die Zeitzone mit std::move(z), und die Uhrzeit wie von z->to_sys(tp, c). Siehe choose Enumeration , wie sich der Parameter c auf das Ergebnis auswirkt.
8) Initialisiert die Zeitzone mit std::move(z), und die Uhrzeit mit st.
9) Entspricht dem Bau mit {traits::locate_zone(name), tp}.
10) Entspricht dem Bau mit {traits::locate_zone(name), tp, c}.
11) Entspricht dem Bau mit {traits::locate_zone(name), st}.
12) Entspricht dem Bau mit {traits::locate_zone(name), y}.
13) Entspricht dem Bau mit {traits::locate_zone(name), y, c}. Der choose Parameter hat ckeine Auswirkung.
14) Initialisiert die Zeitzone aus der Zeitzone und dem yUhrzeitpunkt.
15) Initialisiert die Zeitzone mit std::move(z) und der Uhrzeit vom y"Zeitpunkt".
16) Entspricht dem Bau mit {z, y}. Der choose Parameter hat ckeine Auswirkung.
Hinweis
zoned_time verfügt nicht über einen Verschiebungskonstruktor. Wenn Sie versuchen, sie zu verschieben, wird eine Kopie mit dem Standardkopiekonstruktor erstellt.
Beispiel: Erstellen eines zoned_time
Im Folgenden wird gezeigt, wie Sie eine zoned_time Instanz für die Zeitzone "Antarctica/Casey"am 15.09.2021 um 4:45 Uhr erstellen:
// 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
Verwendet die Zeitzone in diesem zoned_time Bereich, um Informationen zum Zeitpunkt in der zoned_time.
sys_info get_info() const;
Rückgabewert
A sys_info , der den UTC-Versatz für die Zeitzone und die Zeit, den Versatz für die Sommerzeit usw. enthält.
Beispiel: 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
Ruft ein local_time<duration> , das die lokale Zeit darstellt, die für diese zoned_timeZeitzone und den Zeitpunkt angegeben ist.
local_time<duration> get_local_time() const;
Rückgabewert
Die zurückgegebene local_time ist ein Synonym für time_point<local_t, duration>.
Beispiel: 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
Ruft die Zeit ab, die in der zoned_time für die system_clock.
sys_time<duration> get_sys_time() const;
Rückgabewert
Die in diesem zoned_timeBereich gespeicherte Zeit ohne Anpassung der Zeitzone. Sie stellt die systemweite Wanduhrzeit als time_point dar. Die zurückgegebene sys_time ist ein Synonym für template <class Duration> time_point<system_clock Duration>;
Beispiel: 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
Ruft die Zeitzone ab, die in diesem zoned_timegespeichert ist.
TimeZonePtr get_time_zone() const;
Rückgabewert
Ein Zeiger auf die in dieser zoned_timeDatei gespeicherte time_zone.
Beispiel: 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=
Zuweisen eines anderen zoned_time zu einem.this Oder weisen Sie nur die anderen zoned_time's sys_time oder 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);
Die Parameter
zt
Der zoned_time , der einem zugewiesen werden this soll.
st
Diesys_time, die dem gespeicherten in dieser time_pointDatei zugewiesen zoned_time werden soll.
lt
Dielocal_time, die dem gespeicherten in dieser time_pointDatei zugewiesen zoned_time werden soll.
Rückgabewert
*this
Beispiel: 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
Bemerkungen
1) Der Standardmäßige Kopierzuweisungsoperator. Kopiert den gespeicherten time_point und time_zone Zeiger von der anderen zoned_time in diesen zoned_time.
2) Weist st dies time_pointzoned_timezu. Nach der Aufgabe *this->get_sys_time() == st; konvertiert lt 3) (a local_time) in ein sys_time. Dies geschieht im Wesentlichen als timeZone->to_sys(lt), und weist das Ergebnis dem time_point in diesem zoned_time. Nach der Aufgabe *this->get_local_time() == lt;
operator local_time
Kombiniert die zoned_timeZeitzone mit dem gespeicherten Zeitpunkt, um die Ortszeit in dieser Zeitzone zu erzeugen.
explicit operator local_time<duration>() const;
Rückgabewert
Ein time_point<local_t, Duration> Wert, der die Ortszeit für die Zeitzone in diesem zoned_timeBereich darstellt. Sie können den Komfortalias local_time verwenden, um einen von dieser Funktion zurückgegebenen Wert darzustellen.
Der Rückgabewert ist effektiv timeZone->to_local(get_sys_time());
Beispiel: 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
Ruft den in diesem zoned_time Bereich gespeicherten Zeitpunkt ab, ohne die Zeitzone anzuwenden.
operator sys_time<duration>() const;
Rückgabewert
Die in diesem zoned_timeBereich gespeicherte Zeit ohne Anpassung der Zeitzone. Die zurückgegebene sys_time ist ein Synonym für template <class Duration> time_point<system_clock Duration>; und stellt den gleichen Zeitpunkt dar, der in dieser zoned_timegespeichert ist.
Beispiel: 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
Siehe auch
<chrono>
time_point
time_zone
zoned_traits Struktur
Referenz zu Headerdateien