Klasa zoned_time
A zoned_time
to parowanie a time_zone
i time_point
. Daje znaczenie time_point
w określonej strefie czasowej.
Składnia
template<class Duration, class TimeZonePtr = const time_zone*>
class zoned_time ; // C++20
Uwagi
Element zoned_time
zawsze odwołuje się do prawidłowej strefy czasowej i reprezentuje punkt w czasie, który istnieje i nie jest niejednoznaczny w tej strefie czasowej.
Elementy członkowskie
Nazwa/nazwisko | opis |
---|---|
Konstruktory | Skonstruuj element zoned_time . |
get_info |
Używa strefy czasowej w tym zoned_time celu, aby uzyskać informacje o punkcie czasu w obiekcie zoned_time . |
get_local_time |
Łączy strefę czasową w zoned_time obiekcie z przechowywanym punktem czasu w celu utworzenia czasu lokalnego w tej strefie czasowej. |
get_sys_time |
Pobiera punkt czasu przechowywany w tym zoned_time miejscu bez stosowania strefy czasowej. |
get_time_zone |
Pobiera time_zone przechowywane w tym pliku zoned_time . |
operator= |
Przypisz do tego wartość innego zoned_time elementu lub innego sys_time zoned_time local_time elementu lub .zoned_time |
operator local_time |
zoned_time Łączy strefę czasową z przechowywanym punktem czasu w celu utworzenia czasu lokalnego w tej strefie czasowej. |
operator sys_time |
Pobiera czas przechowywany w tym zoned_time miejscu bez stosowania strefy czasowej. |
Inne niż elementy członkowskie
Nazwa/nazwisko | opis |
---|---|
operator== |
Ustal, czy dwa zoned_time wystąpienia są równe. |
operator<< |
zoned_time Wyprowadź element do danego strumienia. |
Aliasy typu wygody
Nazwa/nazwisko | opis |
---|---|
zoned_seconds |
Synonim dla zoned_time<seconds>; |
zoned_time::duration |
Czas trwania mierzony w sekundach. Jest to synonim dla common_type_t<Duration, seconds>; |
Wymagania
Nagłówek: <chrono>
Język Microsoft C++ obsługuje klasę rozpoczynającą zoned_time
się w programie Visual Studio 2019 w wersji 16.10.
Dane strefy czasowej są dostępne tylko dla systemu Windows 10 w wersji 1903/19H1 i nowszych oraz systemu Windows Server 2022 i nowszych.
Przestrzeń nazw: std::chrono
Opcja kompilatora: /std:c++latest
Konstruktory
Skonstruuj element 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);
Parametry
c
Wskazuje, jak obsługiwać niejednoznaczne lub nieistniejące czasy lokalne podczas konwertowania local_time
wartości na sys_time
. Aby uzyskać więcej informacji, zobacz choose
wyliczenie.
name
Nazwa strefy czasowej.
st
A sys_time
z określonym czasem trwania. Służy do ustawiania czasu.
tp
A local_time
z określonym czasem trwania. Służy do ustawiania czasu.
y
Skopiowany zoned_time
do utworzenia nowego zoned_time
elementu .
z
Element time_zone
" std::move(z)
d" do skonstruowanego zoned_time
.
zt
Wskaźnik zoned_time
, który jest std::move(zt)
'd do skonstruowanego zoned_time
.
Uwagi
1) Inicjuje strefę czasową za pomocą traits::default_zone()
elementu , a ustawienie domyślne konstruuje punkt czasu.
2) Domyślny konstruktor kopiowania.
3) Inicjuje strefę czasową za pomocą std::move(z)
elementu , a ustawienie domyślne konstruuje punkt czasu.
4) Inicjuje strefę czasową za pomocą traits::default_zone()
parametru i godzinę .st
5) Inicjuje strefę czasową i traits::locate_zone(name)
domyślnie konstruuje punkt czasu.
6) Inicjuje strefę czasową za pomocą std::move(z)
parametru i czas, konwertując tp
je tak, jak na z->to_sys(tp)
wartość .
7) Inicjuje strefę czasową za pomocą std::move(z)
parametru i czas, tak jak w przypadku z->to_sys(tp, c)
wartości . Zobacz choose
wyliczenie , jak parametr c
wpływa na wynik.
8) Inicjuje strefę czasową za pomocą std::move(z)
parametru i godzinę .st
9) Odpowiednik konstrukcji z elementem {traits::locate_zone(name), tp}
.
10) Odpowiednik konstrukcji z elementem {traits::locate_zone(name), tp, c}
.
11) Odpowiednik konstrukcji z elementem {traits::locate_zone(name), st}
.
12) Odpowiednik konstrukcji z elementem {traits::locate_zone(name), y}
.
13) Odpowiednik konstrukcji z elementem {traits::locate_zone(name), y, c}
. Parametr choose
, c
nie ma żadnego efektu.
14) Inicjuje strefę czasową ze y
strefy czasowej i punktu czasowego.
15) Inicjuje strefę std::move(z)
czasową i czas od y
punktu czasowego.
16) Odpowiednik konstrukcji z elementem {z, y}
. Parametr choose
, c
nie ma żadnego efektu.
Uwaga
zoned_time
nie ma konstruktora przenoszenia. Próba przeniesienia powoduje utworzenie kopii przy użyciu domyślnego konstruktora kopiowania.
Przykład: konstruowanie elementu zoned_time
Poniżej przedstawiono sposób tworzenia zoned_time
wystąpienia dla strefy czasowej "Antarctica/Casey"
, w dniu 15.09.2021 o 16:45:
// 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
Używa strefy czasowej w tym zoned_time
celu, aby uzyskać informacje o punkcie czasu w obiekcie zoned_time
.
sys_info get_info() const;
Wartość zwracana
Element sys_info
, który zawiera przesunięcie UTC dla strefy czasowej i godziny, przesunięcie korekty czasu letniego itd.
Przykład: 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
Pobiera element local_time<duration>
reprezentujący czas lokalny, biorąc pod uwagę tę zoned_time
strefę czasową i punkt czasu.
local_time<duration> get_local_time() const;
Wartość zwracana
Zwrócony local_time
element jest synonimem .time_point<local_t, duration>
Przykład: 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
Pobiera czas przechowywany w zoned_time
obiekcie dla elementu system_clock
.
sys_time<duration> get_sys_time() const;
Wartość zwracana
Czas przechowywany w tym zoned_time
obiekcie bez żadnego dostosowania strefy czasowej. Reprezentuje czas zegara ściany całej systemu jako time_point. Zwrócony sys_time
element jest synonimem template <class Duration> time_point<system_clock Duration>;
Przykład: 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
Pobiera strefę czasową przechowywaną w tym obiekcie zoned_time
.
TimeZonePtr get_time_zone() const;
Wartość zwracana
Wskaźnik do time_zone przechowywany w tym obiekcie zoned_time
.
Przykład: 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=
Przypisz inny zoned_time
do this
jednego. Możesz też przypisać tylko inne zoned_time
słowy sys_time
lub 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);
Parametry
zt
Element zoned_time
do przypisania do this
jednego.
st
Element sys_time
do przypisania do pliku przechowywanego time_point
w tym obiekcie zoned_time
.
lt
Element local_time
do przypisania do pliku przechowywanego time_point
w tym obiekcie zoned_time
.
Wartość zwracana
*this
Przykład: 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
Uwagi
1) Domyślny operator przypisania kopiowania. Kopie (nie są przenoszone) przechowywane time_point
i time_zone wskaźnik z drugiej zoned_time
do tego zoned_time
elementu .
2) Przypisuje st
element do time_point
w tym obiekcie zoned_time
. Po przypisaniu *this->get_sys_time() == st;
3) Konwertuje lt
(a local_time
) na sys_time
. Robi to zasadniczo jako timeZone->to_sys(lt)
, i przypisuje wynik do [time_point
] w tym obiekcie zoned_time
. Po przypisaniu, *this->get_local_time() == lt;
operator local_time
zoned_time
Łączy strefę czasową z przechowywanym punktem czasu w celu utworzenia czasu lokalnego w tej strefie czasowej.
explicit operator local_time<duration>() const;
Wartość zwracana
Wartość time_point<local_t, Duration>
reprezentująca czas lokalny dla strefy czasowej i czasowej w tym obiekcie zoned_time
. Możesz użyć aliasu wygody local_time
, aby reprezentować wartość zwracaną przez tę funkcję.
Wartość zwracana jest skutecznie timeZone->to_local(get_sys_time());
Przykład: 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
Pobiera punkt czasu przechowywany w tym zoned_time
miejscu bez stosowania strefy czasowej.
operator sys_time<duration>() const;
Wartość zwracana
Czas przechowywany w tym zoned_time
obiekcie bez żadnego dostosowania strefy czasowej. Zwrócony sys_time
element jest synonimem template <class Duration> time_point<system_clock Duration>;
i reprezentuje ten sam punkt w czasie, który jest przechowywany w tym obiekcie zoned_time
.
Przykład: 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
Zobacz też
<chrono>
time_point
time_zone
zoned_traits
Struct
Odwołanie do plików nagłówka