std::formatter<std::chrono::gps_time>
ヘッダ <chrono> で定義 | ||
template<class Duration, class CharT> struct formatter<std::chrono::gps_time<Duration>, CharT>; | ||
std::chrono::gps_time のための書式化ルールを定義する std::formatter の特殊化です。
%Z
が使用された場合は、それは CharT
に拡張された "GPS" に置き換えられます。 %z
またはその修飾版が使用された場合は、 0min
のオフセットが書式化されます。 書式化された日付時刻は std::chrono::sys_time<Duration>(tp.time_since_epoch())+ std::chrono::days(3657) で初期化された std::chrono::sys_time に対して書式化されたそれと同等です。
std::formatter の特殊化は、通常、直接アクセスされず、書式化関数を通して使用されます。
[編集]書式指定
書式指定は以下の形式を持ちます。
fill-and-align(オプション)width(オプション)precision(オプション)chrono-spec(オプション) | |||||||||
fill-and-align、 width、および precision は標準の書式指定と同じ意味を持ちます。 precision は表現型 Rep
が浮動小数点型である std::chrono::duration に対してのみ有効であり、そうでなければ std::format_error が投げられます。
chrono-spec は0個以上の変換指定子と ({
、 }
および %
以外の) 普通の文字から構成されます。 普通の文字はすべて変更されずに出力に書き込まれます。 修飾されていない変換指定子は %
文字で始まり指定子の動作を決定する文字が続きます。 一部の変換指定子は %
の後に修飾文字 E
または O
が挿入された修飾形式を持ちます。 変換指定は後述のように出力中に適切な文字で置き換えられます。
%
で始まるけれども以下の書式指定子のいずれにもマッチしない書式文字列内の文字の並びは普通の文字として解釈されます。
chrono-spec が空の場合は、 chrono オブジェクトは、それを std::stringstream os にストリームして os.str() に書式指定通りにパディングを追加した後それを出力バッファにコピーしたかのように、書式化されます。
以下の書式指定子が利用可能です。
変換指定子 | 説明 | |
---|---|---|
%% | 文字 % を書き込みます。 | |
%n | 改行文字を書き込みます。 | |
%t | 水平タブ文字を書き込みます。 | |
年 | ||
%C %EC | 切り捨て除算を使用して100で割った年を書き込みます。 結果が1桁の場合は前に0が付加されます。 修飾付きのコマンド | |
%y | 年の下2桁を書き込みます。 結果が1桁の場合は前に0が付加されます。 | |
%Y | 年を10進数として書き込みます。 結果が4桁未満の場合は4桁になるまで前に0が付加されます。 | |
月 | ||
%b %h | ロケールの省略形の月名を書き込みます。 | |
%B | ロケールの完全形の月名を書き込みます。 | |
%m %Om | 月を10進数として書き込みます (1月が 01 です)。 結果が1桁の場合は前に0が付加されます。 修飾付きのコマンド | |
日 | ||
%d %Od | 日を10進数として書き込みます。 結果が1桁の場合は前に0が付加されます。 修飾付きのコマンド | |
%e %Oe | 日を10進数として書き込みます。 結果が1桁の場合は前に0が付加されます。 修飾付きのコマンド | |
曜日 | ||
%a | ロケールの省略形の曜日名を書き込みます。 | |
%A | ロケールの完全形の曜日名を書き込みます。 | |
%u %Ou | ISO の曜日を10進数 (1〜7) として書き込みます。 月曜日が 1 です。 修飾付きのコマンド | |
%w %Ow | 曜日を10進数 (0〜6) として書き込みます。 日曜日が 0 です。 修飾付きのコマンド | |
ISO 8601 の週基準の年 | ||
ISO 8601 では、週は月曜日から始まり、年の最初の週は、以下の要件を満たさなければなりません。
| ||
%g | ISO 8601 の週基準の年の下2桁を書き込みます。 結果が1桁の場合は前に0が付加されます。 | |
%G | ISO 8601 の週基準の年を10進数として書き込みます。 結果が4桁未満の場合は4桁になるまで前に0が付加されます。 | |
%V %OV | ISO 8601 の週番号を10進数として書き込みます。 結果が1桁の場合は前に0が付加されます。 修飾付きのコマンド | |
週番号および通日 | ||
%j | 通日を10進数として書き込みます (1月1日が 001 です)。 結果が3桁未満の場合は3桁になるまで前に0が付加されます。 | |
%U %OU | 週番号を10進数として書き込みます。 その年の最初の日曜日が週番号01の最初の日です。 同じ年のそれより前の日は週番号00です。 結果が1桁の場合は前に0が付加されます。 修飾付きのコマンド | |
%W %OW | 週番号を10進数として書き込みます。 その年の最初の月曜日が週番号01の最初の日です。 同じ年のそれより前の日は週番号00です。 結果が1桁の場合は前に0が付加されます。 修飾付きのコマンド | |
日付 | ||
%D | "%m/%d/%y" と同等です。 | |
%F | "%Y-%m-%d" と同等です。 | |
%x %Ex | ロケールの日付表現を書き込みます。 修飾付きのコマンド | |
時刻 | ||
%H %OH | 時 (24時間表記) を10進数として書き込みます。 結果が1桁の場合は前に0が付加されます。 修飾付きのコマンド | |
%I %OI | 時 (12時間表記) を10進数として書き込みます。 結果が1桁の場合は前に0が付加されます。 修飾付きのコマンド | |
%M %OM | 分を10進数として書き込みます。 結果が1桁の場合は前に0が付加されます。 修飾付きのコマンド | |
%S %OS | 秒を10進数として書き込みます。 秒数が10未満の場合は前に0が付加されます。 入力の精度が正確に秒で表せない場合は、書式は入力の精度にマッチする精度 (または、浮動小数点の10進数の秒への変換が小数点以下18桁以内で行えない場合はマイクロ秒の精度) を持つ固定小数点表記の10進浮動小数点数になります。 小数点の文字はロケールに従ってローカライズされます。 修飾付きのコマンド | |
%p | 午前/午後に相当するロケールの表現を書き込みます。 | |
%R | "%H:%M" と同等です。 | |
%T | "%H:%M:%S" と同等です。 | |
%r | ロケールの12時間表記の時刻表現を書き込みます。 | |
%X %EX | ロケールの時刻表現を書き込みます。 修飾付きのコマンド | |
その他 | ||
%c %Ec | ロケールの日付時刻表現を書き込みます。 修飾付きのコマンド | |
%z %Ez %Oz | UTC からのオフセットを ISO 8601 形式で書き込みます。 例えば -0430 は UTC より4時間30分遅れていることを表します。 オフセットがゼロの場合は +0000 が使用されます。 修飾付きのコマンド | |
%Z | タイムゾーンの省略形を書き込みます。 |
[編集]例
This section is incomplete Reason: no example |
[編集] 関連項目
(C++20) | 引数の書式化された表現を新しい文字列に格納します (関数テンプレート) |