名前空間
変種
操作

std::chrono::parse

提供: cppreference.com
< cpp‎ | chrono
 
 
 
日付と時間のユーティリティ
(C++11)
(C++11)
時計
(C++20)
                                                  
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
カレンダー
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
タイムゾーン
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
C スタイルの日付と時間
 
template<class CharT, class Traits, class Alloc, class Parsable>
/* unspecified */ parse(const std::basic_string<CharT, Traits, Alloc>& fmt, Parsable& tp);
(1) (C++20およびそれ以降)
template<class CharT, class Traits, class Alloc, class Parsable>

/* unspecified */ parse(const std::basic_string<CharT, Traits, Alloc>& fmt, Parsable& tp,

                        std::basic_string<CharT, Traits, Alloc>& abbrev);
(2) (C++20およびそれ以降)
template<class CharT, class Traits, class Alloc, class Parsable>

/* unspecified */ parse(const std::basic_string<CharT, Traits, Alloc>& fmt, Parsable& tp,

                        std::chrono::minutes& offset);
(3) (C++20およびそれ以降)
template<class CharT, class Traits, class Alloc, class Parsable>

/* unspecified */ parse(const std::basic_string<CharT, Traits, Alloc>& fmt, Parsable& tp,
                        std::basic_string<CharT, Traits, Alloc>& abbrev,

                        std::chrono::minutes& offset);
(4) (C++20およびそれ以降)

std::basic_istream<CharT, Traits> オブジェクト is があったとき、式 is >> manip が以下のように from_stream を (引数依存の名前探索を有効にするため無修飾で) 呼ぶような、未規定な型のオブジェクト manip を返します。

1) from_stream(is, fmt.c_str(), tp)
2) from_stream(is, fmt.c_str(), tp, std::addressof(abbrev))
3) from_stream(is, fmt.c_str(), tp, nullptr, &offset)
4) from_stream(is, fmt.c_str(), tp, std::addressof(abbrev), &offset).

is >> manipis の値を持つ std::basic_istream<CharT, Traits> 型の左辺値です。

これらのオーバーロードは、対応する from_­stream 式が well-formed である場合にのみ、オーバーロード解決に参加します。

[編集] 書式文字列

書式文字列は0個以上の変換指定子および通常の文字から構成されます。 通常の文字は、ホワイトスペース文字および終端のヌル文字を除き、入力ストリームから同じ1文字にマッチします。 または、ストリームの次の文字と比較して等しくなければ、関数は失敗します。

ホワイトスペース文字は入力ストリームの0個以上のホワイトスペース文字にマッチします。

無修飾の変換指定子は % 文字で始まり、その後に指定子の動作を決める文字が続きます。 変換指定子には、 % 文字の後に修飾文字 E または O が挿入される、修飾付きの形式を持つものもあります。 変換指定子には、 % 文字の後に正の10進整数 (以下の表では N として表されます) として与えられる、幅のパラメータを持つものもあります。 各変換指定子はマッチした文字を以下の表に従って日付および時刻の一部として解釈します。

書式文字列中の、 % で始まるけれども以下の変換指定子のいずれにも一致しない文字シーケンスは、通常の文字として解釈されます。

書式文字列で指定されたすべての内容をパースすることに失敗した場合、または完全な結果を得るには不十分な情報しかパースできなかった場合、またはパースした結果の情報が矛盾していた場合、 is.setstate(std::ios_base::failbit) が呼ばれます。

以下の変換指定子が利用できます。

変換指定子 説明
%% % 文字にマッチします。
%n 1個のホワイトスペース文字にマッチします。
%t 0個以上のホワイトスペース文字にマッチします。
%C
%NC
%EC
%OC
10進数として世紀をパースします。 幅 N は読み込む最大文字数を指定します。 デフォルトの幅は2です。 先頭のゼロは許容されますが必須ではありません。

修飾付きのコマンド %EC および %OC はロケールの世紀の代替表現を解釈します。

%y
%Ny
%Ey
%Oy
年の10進数の下2桁をパースします。 世紀が (%C などによって) 指定されていない場合、範囲 [69, 99] の値は1969〜1999年を表すと推定され、範囲 [00, 68] の値は2000〜2068年を表すと推定されます。 幅 N は読み込む最大文字数を指定します。 デフォルトの幅は2です。 先頭のゼロは許容されますが必須ではありません。

修飾付きのコマンド %Ey および %Oy はロケールの代替表現を解釈します。

%Y
%NY
%EY
年を10進数としてパースします。 幅 N は読み込む最大文字数を指定します。 デフォルトの幅は4です。 先頭のゼロは許容されますが必須ではありません。

修飾付きのコマンド %EY はロケールの代替表現を解釈します。

%b
%B
%h
ロケールの完全形または省略形の月名をパースします。 大文字小文字は区別しません。
%m
%Nm
%Om
月を10進数としてパースします (1月が 1 です)。 幅 N は読み込む最大文字数を指定します。 デフォルトの幅は2です。 先頭のゼロは許容されますが必須ではありません。

修飾付きのコマンド %Om はロケールの代替表現を解釈します。

%d
%Nd
%Ed
%e
%Ne
%Ee
日を10進数としてパースします。 幅 N は読み込む最大文字数を指定します。 デフォルトの幅は2です。 先頭のゼロは許容されますが必須ではありません。

修飾付きのコマンド %Ed および %Ee はロケールの代替表現を解釈します。

曜日
%a
%A
ロケールの完全形または省略形の曜日名を解釈します。 大文字小文字は区別しません。
%u
%Nu
%Ou
ISO の曜日を10進数 (1〜7) としてパースします。 月曜日が 1 です。 幅 N は読み込む最大文字数を指定します。 デフォルトの幅は1です。 先頭のゼロは許容されますが必須ではありません。

修飾付きのコマンド %Ou はロケールの代替表現を解釈します。

%w
%Nw
%Ow
曜日を10進数 (0〜6) としてパースします。 日曜日が 0 です。 幅 N は読み込む最大文字数を指定します。 デフォルトの幅は1です。 先頭のゼロは許容されますが必須ではありません。

修飾付きのコマンド %Ow はロケールの代替表現を解釈します。

ISO 8601 の週基準の年

ISO 8601 では、週は月曜日から始まり、年の最初の週は、以下の要件を満たさなければなりません。

  • 1月4日を含む
  • その年の最初の木曜日を含む
%g
%Ng
ISO 8601 の週基準の年の10進数の下2桁をパースします。 幅 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
週番号を10進数としてパースします。 その年の最初の日曜日が週番号01の最初の日です。 同じ年のそれより前の日は週番号00です。 幅 N は読み込む最大文字数を指定します。 デフォルトの幅は2です。 先頭のゼロは許容されますが必須ではありません。
%W
%NW
週番号を10進数としてパースします。 その年の最初の月曜日が週番号01の最初の日です。 同じ年のそれより前の日は週番号00です。 幅 N は読み込む最大文字数を指定します。 デフォルトの幅は2です。 先頭のゼロは許容されますが必須ではありません。
日付
%D "%m/%d/%y" と同等です。
%F
%NF
"%Y-%m-%d" と同等です。 幅を指定した場合、それは %Y にのみ適用されます。
%x
%Ex
ロケールの日付表現をパースします。

修飾付きのコマンド %Ex はロケールの代替日付表現を解釈します。

時刻
%H
%NH
%OH
時 (24時間表記) を10進数としてパースします。 幅 N は読み込む最大文字数を指定します。 デフォルトの幅は2です。 先頭のゼロは許容されますが必須ではありません。

修飾付きのコマンド %OH はロケールの代替表現を解釈します。

%I
%NI
時 (12時間表記) を10進数としてパースします。 幅 N は読み込む最大文字数を指定します。 デフォルトの幅は2です。 先頭のゼロは許容されますが必須ではありません。
%M
%NM
%OM
分を10進数として解釈します。 幅 N は読み込む最大文字数を指定します。 デフォルトの幅は2です。 先頭のゼロは許容されますが必須ではありません。

修飾付きのコマンド %OM はロケールの代替表現を解釈します。

%S
%NS
%OS
秒を10進数として解釈します。 幅 N は読み込む最大文字数を指定します。 デフォルトの幅は2です。 先頭のゼロは許容されますが必須ではありません。

修飾付きのコマンド %OS はロケールの代替表現を解釈します。

%p 午前/午後に相当するロケールの表現を解釈します。 書式文字列内でコマンド %I%p より前になければなりません。
%R "%H:%M" と同等です。
%T "%H:%M:%S" と同等です。
%r ロケールの12時間表記の時刻表現をパースします。
%X
%EX
ロケールの時刻表現をパースします。

修飾付きのコマンド %EX はロケールの代替時刻表現を解釈します。

その他
%c
%Ec
ロケールの日付時刻表現をパースします。

修飾付きのコマンド %Ec はロケールの代替日付時刻表現を解釈します。

%z
%Ez
%Oz
[+|-]hh[mm] 形式の UTC からのオフセットをパースします。 例えば、 -0430 は UTC より4時間30分遅れていることを表し、 04 は UTC より4時間進んでいることを表します。

修飾付きのコマンド %Ez および %Oz[+|-]h[h][:mm] 形式をパースします (つまり、時間と分の間に : を必要とし、時間の先頭のゼロを省略可能にします)。

%Z AZaz09-+_/ の文字のみを含む最長の文字シーケンスを取って、タイムゾーンの名前または省略形をパースします。

[編集] 関連項目

指定された書式に従って sys_time をストリームからパースします
(関数テンプレート) [edit]
指定された書式に従って utc_time をストリームからパースします
(関数テンプレート) [edit]
指定された書式に従って tai_time をストリームからパースします
(関数テンプレート) [edit]
指定された書式に従って gps_time をストリームからパースします
(関数テンプレート) [edit]
指定された書式に従って file_time をストリームからパースします
(関数テンプレート) [edit]
指定された書式に従って local_time をストリームからパースします
(関数テンプレート) [edit]
指定された書式に従って year をストリームからパースします
(関数テンプレート) [edit]
指定された書式に従って month をストリームからパースします
(関数テンプレート) [edit]
指定された書式に従って day をストリームからパースします
(関数テンプレート) [edit]
指定された書式に従って weekday をストリームからパースします
(関数テンプレート) [edit]
指定された書式に従って month_day をストリームからパースします
(関数テンプレート) [edit]
指定された書式に従って year_month をストリームからパースします
(関数テンプレート) [edit]
指定された書式に従って year_month_day をストリームからパースします
(関数テンプレート) [edit]