Třída time_zone_link
Určuje alternativní název objektu time_zone
.
Syntaxe
class time_zone_link; // Since C++20
Poznámky
time_zone_link
Instance se vytvoří při inicializaci databáze časového pásma. Nelze je vytvořit přímo. Získejte instanci prostřednictvím get_tzdb().links
, jak je znázorněno v příkladu na konci tohoto tématu.
I když tento typ má výchozí konstruktor přesunutí a operátor přiřazení přesunutí, není možné ho kopírovat, protože k tomuto typu je k dispozici pouze const
přístup. Použití těchto funkcí má za následek nedefinované chování, což je důvod, proč tady není uvedený konstruktor přesunutí a operátor přiřazení.
Rozdíly v databázi IANA
V implementaci Microsoftu se data časového pásma můžou v některých případech lišit od databáze IANA (Internet Assigned Numbers Authority). Například "America/Nuuk"
se vrátí místo "America/Godthab"
("America/Nuuk"
byl přejmenován "America/Godthab"
v dubnu 2020). V tuto chvíli nezadáváme "Eastern War Time EWT"
časové pásmo. Další informace najdete v tématu Problém č. 1786 v úložišti Microsoft STL GitHub.
Členové
Veřejné členské funkce a šablony funkcí
Název | Popis |
---|---|
name |
Získá alternativní název časového pásma. |
target |
Název time_zone , pro který se jedná time_zone_link o alternativní název. |
Nečlenové
Název | Popis |
---|---|
operator== |
Určete, zda dva time_zone_link objekty mají stejné name . Název target není součástí kontroly rovnosti. |
operator<=> |
Porovnejte to time_zone_link s jinou time_zone_link . Operátory >, >=, <=, <, != jsou syntetizovány kompilátorem. Vrací objekt Left.name() <=> Right.name() . |
Požadavky
Záhlaví: <chrono>
Data časového pásma jsou dostupná jenom pro Windows 10 verze 1903/19H1 a novější a Windows Server 2022 a novější.
Obor názvů: std::chrono
Možnost kompilátoru: /std:c++latest
name
Získá alternativní název časového pásma.
string_view name() const noexcept;
target
Získá název time_zone
, pro který se jedná time_zone_link
o alternativní název.
string_view target() const noexcept; // Since C++20
Příklad: zobrazit time_zone_link
název
Následující příklad zobrazuje názvy jednotlivých time_zone_link
v databázi IANA časového pásma.
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
const auto& my_tzdb = get_tzdb(); // get the IANA time zone database
auto& links = my_tzdb.links; // get the list of time_zone_links from the database
std::for_each(links.begin(), links.end(), // display each time_zone_link name and target
[](auto& l)
{
std::cout << "Name: " << l.name() << "Target" << l.target() << '\n';
});
return 0;
}
Name: ACT Target:Australia/Darwin
Name: AET Target:Australia/Sydney
Name: AGT Target:America/Buenos_Aires
Name: ART Target:Africa/Cairo
Name: AST Target:America/Anchorage
Name: Africa/Asmara Target:Africa/Asmera
Name: Africa/Timbuktu Target:Africa/Bamako
Name: America/Argentina/Buenos_Aires Target:America/Buenos_Aires
Name: America/Argentina/Catamarca Target:America/Catamarca
...
Name: Zulu Target:Etc/UTC