Поделиться через


Класс time_zone_link

Задает альтернативное имя для time_zoneобъекта.

Синтаксис

class time_zone_link;  // Since C++20

Замечания

time_zone_link экземпляры создаются при инициализации базы данных часового пояса. Они не могут быть созданы напрямую. Получите экземпляр, get_tzdb().linksкак показано в примере в конце этого раздела.

Хотя этот тип имеет конструктор перемещения по умолчанию и оператор назначения перемещения, он не копируется, так как предоставляется только const доступ к этому типу. Использование этих функций приводит к неопределенному поведению, поэтому конструктор перемещения и оператор назначения не перечислены здесь.

Различия с базой данных IANA

В реализации Корпорации Майкрософт данные часового пояса могут отличаться в некоторых случаях от базы данных часового пояса центра назначения Интернета (IANA). Например, "America/Nuuk" возвращается вместо "America/Godthab" ("America/Nuuk" было переименовано "America/Godthab" в апреле 2020 г.). В настоящее время часовой "Eastern War Time EWT" пояс не предоставляется. Дополнительные сведения см. в статье "Проблема 1786 " в репозитории Microsoft STL GitHub.

Участники

Общедоступные функции-члены и шаблоны функций

Имя Описание
name Возвращает альтернативное имя часового пояса.
target Имя time_zone того, что это time_zone_link альтернативное имя.

Не являющиеся членами

Имя Описание
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

Возвращает альтернативное имя часового пояса.

string_view name() const noexcept;

Получает имя этого time_zone_link альтернативного time_zone имени.

string_view target() const noexcept;  // Since C++20

В следующем примере отображаются имена каждого из них time_zone_link в базе данных часового пояса IANA.

// 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

См. также

<chrono>
time_zone
Справочник по файлам заголовков