tzdb
Struct
Reprezentuje kopię bazy danych strefy czasowej.
Składnia
struct tzdb; // C++20
Uwagi
Reprezentuje kopię bazy danych strefy czasowej IANA (Internet Assigned Numbers Authority). Baza danych zawiera informacje o każdej strefie czasowej i historii korekt czasu lokalnego. Aby uzyskać więcej informacji na temat bazy danych, zobacz Baza danych strefy czasowej.
Elementy członkowskie
Element członkowski | opis |
---|---|
leap_seconds |
Posortowana vector<leap_second> . Element A leap_second zawiera historię dodawania sekund przestępnych w przeszłości. |
links |
Posortowana vector<time_zone_link> . Time_zone_link zawiera alternatywną nazwę dla danej strefy czasowej. |
version |
Element std::string zawierający wersję bazy danych. |
zones |
Posortowana vector<time_zone> . Element time_zone ma pełną historię reguł strefy czasowej dla określonego obszaru. |
Aby zapoznać się z przykładem używania tych elementów członkowskich, zobacz Przykład: leap_seconds
, links
, zones
w pobliżu końca tego tematu.
Funkcje składowe
Nazwa/nazwisko | opis |
---|---|
current_zone |
Pobiera lokalną strefę czasową. |
locate_zone |
Pobiera określoną strefę czasową. |
current_zone
Pobiera lokalną strefę czasową komputera.
time_zone* current_zone() const; // C++20
Wartość zwracana
Wskaźnik do time_zone
, który reprezentuje lokalną strefę czasową komputera.
Przykład: current_zone
W tym przykładzie pokazano pobieranie bieżącej strefy czasowej.
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
auto& db = get_tzdb();
std::cout << "Current zone: " << db.current_zone()->name();
return 0;
}
Current zone: America/Los_Angeles
locate_zone
Pobiera określoną strefę czasową.
const time_zone* locate_zone(string_view name) const;
Przykład: locate_zone
W tym przykładzie pokazano pobieranie strefy czasowej według nazwy.
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
auto& db = get_tzdb();
std::cout << "Locate zone : " << db.locate_zone("America/New_York")->name() << "\n";
return 0;
}
Locate zone : America/New_York
Przykład: leap_seconds, links, zones
W tym przykładzie pokazano użycie różnych tzdb
elementów członkowskich danych.
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
std::cout << "Leap seconds:\n";
std::for_each(db.leap_seconds.begin(), db.leap_seconds.end(),
[](const leap_second& ls)
{
std::cout << ls.date() << "\n";
});
std::cout << "Links:\n";
std::for_each(db.links.begin(), db.links.end(),
[](const time_zone_link& l)
{
std::cout << "Name: " << l.name() << "\t\tTarget:" << l.target() << '\n';
});
std::cout << "\nTime Zone descriptions:\n";
std::for_each(db.zones.begin(), db.zones.end(),
[](const time_zone& z)
{
std::cout << "Zone: " << z.name() << "\n";
});
return 0;
}
Leap seconds:
1972-07-01 00:00:00
1973-01-01 00:00:00
1974-01-01 00:00:00
...
Links:
Name: ACT Target:Australia/Darwin
Name: AET Target:Australia/Sydney
Name: AGT Target:America/Buenos_Aires
Name: ART Target:Africa/Cairo
...
Time Zone descriptions:
Zone: Africa/Abidjan
Zone: Africa/Accra
Zone: Africa/Addis_Ababa
...
Wymagania
Nagłówek: <chrono>
Przestrzeń nazw: std::chrono
Opcja kompilatora: /std:c++latest
Zobacz też
<chrono>
tzdb_list
time_zone_link
Odwołanie do plików nagłówka