• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

    最終更新日時(UTC):
    が更新

    履歴 編集

    class
    <chrono>

    std::chrono::time_zone

    namespace std::chrono {
      class time_zone;
    }
    

    概要

    time_zoneは、指定した地理領域の全てのタイムゾーン遷移を表すクラスである。

    地域間には時差があるため、地球上の各地域に「タイムゾーン (時間帯)」が割り振られ、標準時であるUTCタイムゾーンからの時差が定義される。

    このクラスは、UTCタイムゾーンから特定のタイムゾーン、およびその逆の時間変換を行う。

    タイムゾーン付きの時間点としてzoned_timeクラスが定義されているため、基本的にはそちらを使うことを推奨する。

    メンバ関数

    構築/コピー/破棄

    名前 説明 対応バージョン
    time_zone(time_zone&&) = default;
    time_zone() = delete;
    time_zone(const time_zone&) = delete;
    コンストラクタ C++20
    time_zone& operator=(time_zone&&) = default;
    time_zone& operator=(const time_zone&) = delete;
    代入演算子 C++20

    ここに記載されていない追加のコンストラクタは未規定である。ユーザーがこのクラスのオブジェクトを構築することはできず、タイムゾーンデータベースtzdbが構築を行う。

    観測

    名前 説明 対応バージョン
    name タイムゾーン名を取得する C++20
    get_info タイムゾーンの情報を取得する C++20

    変換

    名前 説明 対応バージョン
    to_sys ローカル時間からシステム時間に変換する C++20
    to_local システム時間からローカル時間に変換する C++20

    非メンバ関数

    比較演算

    名前 説明 対応バージョン
    operator== 等値比較を行う C++20
    bool operator!=(const time_zone&, const time_zone&) noexcept; 非等値比較を行う (==により使用可能) C++20
    operator<=> 三方比較を行う C++20
    bool operator<(const time_zone&, const time_zone&) noexcept; 左辺が右辺より小さいかを判定する (<=>により使用可能) C++20
    bool operator<=(const time_zone&, const time_zone&) noexcept; 左辺が右辺以下を判定する (<=>により使用可能) C++20
    bool operator>(const time_zone&, const time_zone&) noexcept; 左辺が右辺より大きいかを判定する (<=>により使用可能) C++20
    bool operator>=(const time_zone&, const time_zone&) noexcept; 左辺が右辺以上を判定する (<=>により使用可能) C++20

    #include <iostream>
    #include <chrono>
    
    namespace chrono = std::chrono;
    
    int main()
    {
      // システム時間 (UTCタイムゾーン) を日本のローカル時間 (UTC + 9時間) に変換する
      auto utc_now = chrono::system_clock::now();
    
      const chrono::time_zone* tz = chrono::locate_zone("Asia/Tokyo");
      chrono::local_time jst_now = tz->to_local(utc_now);
    
      std::cout << utc_now << std::endl;
      std::cout << jst_now << std::endl;
    }
    

    出力例

    2019-10-24 11:15:10
    2019-10-24 20:15:10
    

    バージョン

    言語

    • C++20

    処理系