- chrono[meta header]
- std[meta namespace]
- class[meta id-type]
- cpp20[meta cpp]
namespace std {
template <class charT>
struct formatter<chrono::sys_info, charT>;
}sys_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();
// 日本のタイムゾーン
const chrono::time_zone* tz = chrono::locate_zone("Asia/Tokyo");
chrono::sys_info si = tz->get_info(now);
// デフォルトフォーマットはoperator<<と同じ (フォーマット未規定)
std::cout << std::format("{}", si) << std::endl;
std::cout << std::format("{:%z}", si) << std::endl; // オフセット時間
std::cout << std::format("{:%Z}", si) << std::endl; // タイムゾーンの略称
}- chrono::system_clock[link /reference/chrono/system_clock.md]
- now()[link /reference/chrono/system_clock/now.md]
- chrono::time_zone[link /reference/chrono/time_zone.md]
- chrono::locate_zone[link /reference/chrono/locate_zone.md]
- std::format[link /reference/chrono/format.md]
(未検証の行)
+0900
JST
- C++20
- Clang: (9.0時点で実装なし)
- GCC: (9.2時点で実装なし)
- Visual C++: (2019 Update 3時点で実装なし)