time_zone_link
類別
指定的 time_zone
替代名稱。
語法
class time_zone_link; // Since C++20
備註
time_zone_link
實例會在初始化時區資料庫時建立。 無法直接建立它們。 透過 get_tzdb().links
取得 實例,如本主題結尾的範例所示。
雖然此類型具有預設移動建構函式和移動指派運算符,但無法複製,因為只 const
提供此類型的存取權。 使用這些函式會導致未定義的行為,這就是為什麼此處未列出移動建構函式和指派運算符的原因。
IANA 資料庫的差異
在Microsoft的實作中,時區數據在某些情況下可能會與因特網指派號碼授權單位 (IANA) 時區資料庫不同。 例如, "America/Nuuk"
會傳回 而不是 "America/Godthab"
("America/Nuuk"
已在 2020 年 4 月重新 "America/Godthab"
命名)。 我們目前不提供 "Eastern War Time EWT"
時區。 如需詳細資訊,請參閱 Microsoft STL GitHub 存放庫中的問題 #1786 。
成員
公用成員函式和函式範本
名稱 | 描述 |
---|---|
name |
取得時區的替代名稱。 |
target |
這是time_zone_link 替代名稱的 time_zone 。 |
非成員
名稱 | 描述 |
---|---|
operator== |
判斷兩個 time_zone_link 物件是否具有相同 。name 名稱 target 不是相等檢查的一部分。 |
operator<=> |
time_zone_link 將此與另一個time_zone_link 比較。 運算子 >, >=, <=, <, != 是由編譯程式合成。 傳回 Left.name() <=> Right.name() 。 |
需求
標頭: <chrono>
時區數據僅適用於 Windows 10 版本 1903/19H1 和更新版本,以及 Windows Server 2022 和更新版本。
命名空間:std::chrono
編譯程序選項: /std:c++latest
name
取得時區的替代名稱。
string_view name() const noexcept;
target
取得這個 time_zone_link
為替代名稱之 time_zone
的名稱。
string_view target() const noexcept; // Since C++20
範例:顯示 time_zone_link
名稱
下列範例會顯示 IANA 時區資料庫中每個time_zone_link
的名稱。
// 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