Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.
Członkowie
| Nazwa | 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_timeelementu lub innego zoned_timelocal_timesys_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 | Opis |
|---|---|
operator== |
Ustal, czy dwa zoned_time wystąpienia są równe. |
operator<< |
zoned_time Wyprowadź element do danego strumienia. |
Aliasy typu wygody
| Nazwa | 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.
Namespace: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_timeelementu .
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 , cnie ma żadnego efektu.
14) Inicjuje strefę czasową ze ystrefy czasowej i punktu czasowego.
15) Inicjuje strefę std::move(z) czasową i czas od ypunktu czasowego.
16) Odpowiednik konstrukcji z elementem {z, y}. Parametr choose , cnie ma żadnego efektu.
Uwaga / Notatka
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_timestrefę 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_timeobiekcie 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_timesł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_timeelementu .
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 elementu 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_timeobiekcie 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 także
<chrono>
time_point
time_zone
zoned_traits Struct
Odwołanie do plików nagłówka