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

履歴 編集

function
<chrono>

# std::chrono::time_zone::to_local(C++20)

    template<class Duration>
    local_time<common_type_t<Duration, seconds>>
      to_local(const sys_time<Duration>& tp) const; // (1) C++20

## 概要

システム時間からローカル時間に変換する。

この関数は、UTCタイムゾーンをもつシステム時間から、指定されたタイムゾーンのローカル時間に変換する。

ローカル時間からシステム時間への変換では、サマータイムによってあいまいな時間や、存在しない時間が発生する可能性があるが、システム時間からローカル時間への変換ではそのような問題は発生しない。

## 戻り値

`tp`と指定されたタイムゾーンに対応するローカル時間を返す。

## 例

    #include <cassert>
    #include <chrono>

    namespace chrono = std::chrono;
    using namespace std::chrono_literals;

    int main()
    {
      auto now = chrono::system_clock::now();
      chrono::local_time local_now{now.time_since_epoch()};
      chrono::local_time local_jst_now = local_now + 9h;

      // システム時間 (UTCタイムゾーン) を日本のローカル時間に変換する
      const chrono::time_zone* jst = chrono::locate_zone("Asia/Tokyo");
      chrono::local_time utc_to_jst = jst->to_local(now);
      assert(chrono::floor<chrono::seconds>(utc_to_jst) == chrono::floor<chrono::seconds>(local_jst_now));
    }

### 出力

## バージョン

### 言語

- C++20

### 処理系

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

## 関連項目

- `sys_info`