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

履歴 編集

class
<chrono>

std::formatter(C++20)

namespace std {
  template <class charT>
  struct formatter<chrono::local_info, charT>;
}

概要

local_infoクラスに対するstd::formatterクラステンプレートの特殊化。

フォーマットフラグとしては、以下を使用できる:

フォーマットフラグ 説明
%z ISO 8601フォーマットでのUTCからのオフセット (日本だと"+0900")
%Ez オフセットの時と分の間にコロン (:) が挿入される (日本だと"+09:00")
%Oz %Ezと等価
%Z タイムゾーンの略称 (日本だと"JST")

#include <iostream>
#include <chrono>

namespace chrono = std::chrono;

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

  // 日本のタイムゾーン
  const chrono::time_zone* tz = chrono::locate_zone("Asia/Tokyo");
  chrono::local_info li = tz->get_info(local_now);

  // デフォルトフォーマットはoperator<<と同じ (フォーマット未規定)
  std::cout << std::format("{}", li) << std::endl;

  std::cout << std::format("{:%z}", li) << std::endl; // オフセット時間
  std::cout << std::format("{:%Z}", li) << std::endl; // タイムゾーンの略称
}

出力例

(未検証の行)
+0900
JST

バージョン

言語

  • C++20

処理系

  • Clang: (9.0時点で実装なし)
  • GCC: (9.2時点で実装なし)
  • Visual C++: (2019 Update 3時点で実装なし)