std::chrono::from_stream (std::chrono::month_day)
| ヘッダー <chrono> で定義 |
||
| template< class CharT, class Traits, class Alloc = std::allocator<CharT> > std::basic_istream<CharT, Traits>& |
(C++20以降) | |
入力ストリーム is を、フォーマット文字列 fmt に従って std::chrono::month_day md に解析しようと試みます。
UnformattedInputFunction として動作しますが、is.gcount() への影響は未規定です。セントリーオブジェクトを構築・チェックした後、フォーマット文字列 fmt に従って入力ストリーム is を md に解析しようと試みます。解析が有効な month_day をデコードできなかった場合、is.setstate(std::ios_base::failbit) が呼び出され、md は変更されません。
フォーマット指定子 %Z が使用され、正常に解析された場合、解析された値は、abbrev が null でない場合は *abbrev に代入されます。フォーマット指定子 %z またはその修飾バリアントが使用され、正常に解析された場合、解析された値は、offset が null でない場合は *offset に代入されます。
目次 |
[編集] パラメータ
| is | - | 入力ストリーム |
| fmt | - | フォーマット文字列(下記参照) |
| md | - | 解析結果を保持するオブジェクト |
| abbrev | - | null でない場合、%Z 指定子に対応するタイムゾーンの略称または名前を保持するオブジェクトへのポインタ |
| offset | - | null でない場合、%z 指定子に対応する UTC からのオフセットを保持するオブジェクトへのポインタ |
[編集] フォーマット文字列
フォーマット文字列は、0個以上の変換指定子と通常の文字で構成されます。空白文字と終端のヌル文字を除く各通常の文字は、入力ストリームの同一の文字1つと一致するか、ストリームの次の文字が一致しない場合は関数が失敗します。
各空白文字は、入力ストリームの0個以上の空白文字と一致します。
各未変更の変換指定子は、% 文字で始まり、その後に指定子の動作を決定する文字が続きます。一部の変換指定子には、% 文字の後に E または O 修飾子文字が挿入される変更形式があります。一部の変換指定子には、% 文字の後に正の10進数整数(以下、N と表示)で与えられる幅パラメータが挿入される変更形式があります。各変換指定子は、一致した文字を以下の表に従って日付および時刻の型の一部として解釈します。
% で始まり、以下の変換指定子のいずれにも一致しないフォーマット文字列内の文字シーケンスは、通常の文字として解釈されます。
from_stream がフォーマット文字列で指定されたすべてを解析できなかった場合、または完全な結果を指定するのに十分な情報が解析されなかった場合、または解析によって矛盾する情報が明らかにされた場合、is.setstate(std::ios_base::failbit) が呼び出されます。
以下の変換指定子が利用可能です。
| 変換 指定子 |
説明 | |
|---|---|---|
%%
|
リテラルの % 文字に一致します。 | |
%n
|
1つの空白文字に一致します。 | |
%t
|
0個または1個の空白文字に一致します。 | |
| 年 | ||
%C %NC %EC
|
世紀を10進数として解析します。幅 N は読み取る最大文字数を指定します。デフォルトの幅は 2 です。先頭のゼロは許可されますが、必須ではありません。 変更されたコマンド | |
%y %Ny %Ey %Oy
|
年の下2桁を10進数として解析します。世紀が他に指定されていない場合(例: %C)、範囲 [69, 99] の値は1969年から1999年、範囲 [00, 68] の値は2000年から2068年と推定されます。幅 N は読み取る最大文字数を指定します。デフォルトの幅は 2 です。先頭のゼロは許可されますが、必須ではありません。変更されたコマンド | |
%Y %NY %EY
|
年を10進数として解析します。幅 N は読み取る最大文字数を指定します。デフォルトの幅は 4 です。先頭のゼロは許可されますが、必須ではありません。 変更されたコマンド | |
| 月 | ||
%b%B%h
|
ロケールの完全または省略形の、大文字小文字を区別しない月名を解析します。 | |
%m%Nm%Om
|
月を10進数として解析します(1月は 1)。幅 N は読み取る最大文字数を指定します。デフォルトの幅は 2 です。先頭のゼロは許可されますが、必須ではありません。変更されたコマンド | |
| 日 | ||
%d%Nd%Od%e%Ne%Oe
|
月の日を10進数として解析します。幅 N は読み取る最大文字数を指定します。デフォルトの幅は 2 です。先頭のゼロは許可されますが、必須ではありません。 変更されたコマンド | |
| 曜日 | ||
%a%A
|
ロケールの完全または省略形の、大文字小文字を区別しない曜日の名前を解析します。 | |
%u%Nu
|
ISO曜日を10進数(1〜7)として解析します。月曜日が 1 です。幅 N は読み取る最大文字数を指定します。デフォルトの幅は 1 です。先頭のゼロは許可されますが、必須ではありません。 | |
%w%Nw%Ow
|
曜日を10進数(0〜6)として解析します。日曜日が 0 です。幅 N は読み取る最大文字数を指定します。デフォルトの幅は 1 です。先頭のゼロは許可されますが、必須ではありません。変更されたコマンド | |
| ISO 8601週番号ベースの年 | ||
|
ISO 8601では、週は月曜日から始まり、その年の最初の週は次の要件を満たす必要があります。
| ||
%g%Ng
|
ISO 8601週番号ベースの年の下2桁を10進数として解析します。幅 N は読み取る最大文字数を指定します。デフォルトの幅は 2 です。先頭のゼロは許可されますが、必須ではありません。 | |
%G%NG
|
ISO 8601週番号ベースの年を10進数として解析します。幅 N は読み取る最大文字数を指定します。デフォルトの幅は 4 です。先頭のゼロは許可されますが、必須ではありません。 | |
%V%NV
|
ISO 8601年の週番号を10進数として解析します。幅 N は読み取る最大文字数を指定します。デフォルトの幅は 2 です。先頭のゼロは許可されますが、必須ではありません。 | |
| 週/年の日 | ||
%j%Nj
|
年の日を10進数として解析します(1月1日は 1)。幅 N は読み取る最大文字数を指定します。デフォルトの幅は 3 です。先頭のゼロは許可されますが、必須ではありません。 | |
%U%NU%OU
|
年の週番号を10進数として解析します。その年の最初の日曜日は週 01 の最初の日です。それ以前の同じ年の日数は週 00 に含まれます。幅 N は読み取る最大文字数を指定します。デフォルトの幅は 2 です。先頭のゼロは許可されますが、必須ではありません。 変更されたコマンド | |
%W%NW%OW
|
年の週番号を10進数として解析します。その年の最初月曜日は週 01 の最初の日です。それ以前の同じ年の日数は週 00 に含まれます。幅 N は読み取る最大文字数を指定します。デフォルトの幅は 2 です。先頭のゼロは許可されますが、必須ではありません。 変更されたコマンド | |
| 日付 | ||
%D
|
"%m/%d/%y" と同等です。 | |
%F%NF
|
"%Y-%m-%d" と同等です。幅が指定されている場合、それは %Y にのみ適用されます。 | |
%x%Ex
|
ロケールの日付表現を解析します。 変更されたコマンド | |
| 時刻 | ||
%H%NH%OH
|
時間(24時間制)を10進数として解析します。幅 N は読み取る最大文字数を指定します。デフォルトの幅は 2 です。先頭のゼロは許可されますが、必須ではありません。 変更されたコマンド | |
%I%NI%OI
|
時間(12時間制)を10進数として解析します。幅 N は読み取る最大文字数を指定します。デフォルトの幅は 2 です。先頭のゼロは許可されますが、必須ではありません。 変更されたコマンド | |
%M%NM%OM
|
分を10進数として解析します。幅 N は読み取る最大文字数を指定します。デフォルトの幅は 2 です。先頭のゼロは許可されますが、必須ではありません。 変更されたコマンド | |
%S%NS%OS
|
秒を10進数として解析します。幅 N は読み取る最大文字数を指定します。デフォルトの幅は 2 です。先頭のゼロは許可されますが、必須ではありません。 変更されたコマンド | |
%p
|
12時間制に関連付けられた午前/午後指定子のロケールでの等価なものを解析します。 | |
%R
|
"%H:%M" と同等です。 | |
%T
|
"%H:%M:%S" と同等です。 | |
%r
|
ロケールの12時間制時刻を解析します。 | |
%X%EX
|
ロケールの時刻表現を解析します。 変更されたコマンド | |
| その他 | ||
%c%Ec
|
ロケールの日付と時刻の表現を解析します。 変更されたコマンド | |
%z%Ez%Oz
|
[+|-]hh[mm] の形式で UTC からのオフセットを解析します。例えば、-0430 は UTC より4時間30分遅れていることを指し、04 は UTC より4時間進んでいることを指します。変更されたコマンド | |
%Z
|
タイムゾーンの省略形または名前を解析します。これは、A から Z、a から z、0 から 9、-、+、_、および / の文字のみを含む最長の文字シーケンスとして取得されます。 | |
[編集] 戻り値
is
[編集] 関連項目
| (C++20) |
ストリームから chrono オブジェクトを解析する(関数テンプレート) |