最終更新日時: 2024年06月11日 22時45分38秒 (JST)
Akira Takahashi が更新

履歴 編集

function
<chrono>

# std::chrono::get_tzdb_list(C++20)

    namespace std::chrono {
      const tzdb_list& get_tzdb_list();
    }

## 概要

タイムゾーンデータベースのリストを取得する。

この関数は、`tzdb_list`クラスのシングルトンオブジェクトを生成・取得する。

## 効果

この関数に最初にアクセスした際に、タイムゾーンデータベースを初期化する。初期化時には、`tzdb_list`クラスオブジェクトには要素として`tzdb`オブジェクトがひとつだけ保持される。

## 戻り値

タイムゾーンデータベースリストへの参照を返す。

## 例外

なんらかの理由により`tzdb_list`が妥当な`tzdb`オブジェクトをひとつも保持できない場合、`runtime_error` 例外が送出される。

## 備考

- この関数は複数スレッドからの呼び出しに対して安全であり、初期化は一度だけ行われる

## 例

    #include <iostream>
    #include <chrono>

    namespace chrono = std::chrono;

    int main()
    {
      const chrono::tzdb& tzdb = chrono::get_tzdb_list().front();
      const chrono::time_zone* tz = tzdb.locate_zone("Asia/Tokyo");
      std::cout << tz->name() << std::endl;
    }

### 出力例

    Asia/Tokyo

## バージョン

### 言語

- C++20

### 処理系

- Clang: 9.0 ❌
- GCC: 9.2 ❌
- Visual C++: 2019 Update 3 ❌