Namespaces
Variants

std::chrono:: from_stream (std::chrono::gps_time)

From cppreference.net

template < class CharT, class Traits, class Duration, class Alloc = std:: allocator < CharT > >

std:: basic_istream < CharT, Traits > &
from_stream ( std:: basic_istream < CharT, Traits > & is, const CharT * fmt,
std:: chrono :: gps_time < Duration > & tp,
std:: basic_string < CharT, Traits, Alloc > * abbrev = nullptr,

std:: chrono :: minutes * offset = nullptr ) ;
(C++20以降)

入力ストリーム is を時間点 tp にフォーマット文字列 fmt に従って解析を試みます。

UnformattedInputFunction として振る舞うが、 is. gcount ( ) に対しては未規定の影響を及ぼす。セントリオブジェクトの構築とチェックの後、入力ストリーム is をフォーマット文字列 fmt に従って tp へ解析しようと試みる。有効な時間点のデコードに失敗した場合、 is. setstate ( std:: ios_base :: failbit ) が呼び出され、 tp は変更されない。

書式指定子 %Z が使用され正常に解析された場合、解析された値は * abbrev がnullでない場合に abbrev に代入されます。書式指定子 %z またはその修正バリアントが使用され正常に解析された場合、解析された値は * offset がnullでない場合に offset に代入され、解析されたオフセットは差分が tp に代入される前に、解析されたタイムスタンプから減算されます。

目次

パラメータ

is - 入力ストリーム
fmt - フォーマット文字列(下記参照)
tp - 解析結果を保持する時間点オブジェクト
abbrev - nullでない場合、 %Z 指定子に対応するタイムゾーン略称または名前を保持するオブジェクトへのポインタ
offset - nullでない場合、 %z 指定子に対応するUTCからのオフセットを保持するオブジェクトへのポインタ

フォーマット文字列

書式文字列は、0個以上の変換指定子と通常の文字で構成されます。各通常の文字(空白文字と終端ナル文字を除く)は、入力ストリームから同一の1文字と一致するか、ストリーム上の次の文字が等しくない場合に関数の失敗を引き起こします。

各空白文字は、入力ストリーム内の0個以上の空白文字に一致します。

各変換指定子は、変更されていない状態では % 文字で始まり、その後に指定子の動作を決定する文字が続きます。一部の変換指定子には、 % 文字の後に E または O 修飾文字が挿入される修正形式があります。一部の変換指定子には、 % 文字の後に正の10進整数(以下 N で示す)で与えられる幅パラメータが挿入される修正形式があります。各変換指定子は、一致した文字を以下の表に従って日付と時刻の型の一部として解釈します。

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

from_stream がフォーマット文字列で指定されたすべてを解析できない場合、または完全な結果を指定するのに十分な情報が解析されない場合、または解析が矛盾する情報を明らかにした場合、 is. setstate ( std:: ios_base :: failbit ) が呼び出されます。

以下の変換指定子が利用可能です:

変換指定子
(Conversion specifier)
説明
%% リテラルの % 文字にマッチします。
%n 空白文字1文字にマッチします。
%t ゼロまたは1つの空白文字に一致します。
%C
% N C
%EC
世紀を10進数として解析します。幅 N は読み取る最大文字数を指定します。デフォルトの幅は2です。先行ゼロは許可されますが必須ではありません。

修正コマンド %EC は、ロケールの代替的な世紀表現を解釈します。

%y
% N y
%Ey
%Oy
年の下2桁の10進数を解析します。世紀が他の方法で指定されていない場合(例:%Cを使用)、範囲[69, 99]の値は1969年から1999年を、範囲[00, 68]の値は2000年から2068年を参照すると見なされます。幅 N は読み取る最大文字数を指定します。デフォルトの幅は2です。先行ゼロは許可されますが必須ではありません。

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

%Y
% N Y
%EY
年を10進数として解析します。幅 N は読み取る最大文字数を指定します。デフォルトの幅は4です。先行ゼロは許可されますが必須ではありません。

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

%b
%B
%h
ロケールの完全または省略された大文字小文字を区別しない月名を解析します。
%m
% N m
%Om
月を10進数として解析します(1月は 1 となります)。幅 N は読み取る最大文字数を指定します。デフォルトの幅は2です。先行ゼロは許可されますが必須ではありません。

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

%d
% N d
%Od
%e
% N e
%Oe
日付の日を10進数として解析します。幅 N は読み取る最大文字数を指定します。デフォルトの幅は2です。先行ゼロは許可されますが必須ではありません。

修正コマンド %Od および %Oe はロケールの代替表現を解釈します。

曜日
%a
%A
ロケールの完全または省略形の大文字小文字を区別しない曜日名を解析します。
%u
% N u
ISO 週曜日を10進数 (1-7) として解析します。月曜日は 1 です。幅 N は読み取る最大文字数を指定します。デフォルトの幅は1です。先行ゼロは許可されますが必須ではありません。
%w
% N w
%Ow
曜日を10進数 (0-6) として解析します。日曜日は 0 です。幅 N は読み取る最大文字数を指定します。デフォルトの幅は1です。先行ゼロは許可されますが必須ではありません。

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

ISO 8601 週ベースの年

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

  • 1月4日を含むこと
  • 年の最初の木曜日を含むこと
%g
% N g
ISO 8601週ベース年の最後の2桁の10進数を解析します。幅 N は読み取る最大文字数を指定します。デフォルトの幅は2です。先行ゼロは許可されますが必須ではありません。
%G
% N G
ISO 8601週ベースの年を10進数として解析します。幅 N は読み取る最大文字数を指定します。デフォルトの幅は4です。先行ゼロは許可されますが必須ではありません。
%V
% N V
ISO 8601形式の年間週番号を10進数として解析します。幅 N は読み取る最大文字数を指定します。デフォルトの幅は2です。先行ゼロは許可されますが必須ではありません。
年間の週/日
%j
% N j
年通算日を10進数で解析します(1月1日は 1 )。幅 N は読み取る最大文字数を指定します。デフォルトの幅は3です。先行ゼロは許可されますが必須ではありません。
%U
% N U
%OU
年における週番号を10進数として解析します。年の最初の日曜日が週01の最初の日となります。それ以前の同じ年の日付は週00となります。幅 N は読み取る最大文字数を指定します。デフォルトの幅は2です。先行ゼロは許可されますが必須ではありません。

修正コマンド %OU はロケールの代替表現を解釈します。

%W
% N W
%OW
年における週番号を10進数として解析します。年の最初の月曜日が週01の最初の日となります。それ以前の同じ年の日は週00となります。幅 N は読み取る最大文字数を指定します。デフォルトの幅は2です。先行ゼロは許可されますが必須ではありません。

修正コマンド %OW はロケールの代替表現を解釈します。

日付
%D "%m/%d/%y" と同等です。
%F
% N F
"%Y-%m-%d" と同等。幅が指定された場合、それは %Y にのみ適用される。
%x
%Ex
ロケールの日付表現を解析します。

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

時刻
%H
% N H
%OH
24時間制の時間を10進数として解析します。幅 N は読み取る最大文字数を指定します。デフォルトの幅は2です。先行ゼロは許可されますが必須ではありません。

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

%I
% N I
%OI
12時間制の時間を10進数として解析します。幅 N は読み取る最大文字数を指定します。デフォルトの幅は2です。先行ゼロは許可されますが必須ではありません。

修正コマンド %OI はロケールの代替表現を解釈します。

%M
% N M
%OM
分を10進数として解析します。幅 N は読み取る最大文字数を指定します。デフォルトの幅は2です。先行ゼロは許可されますが必須ではありません。

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

%S
% N S
%OS
秒を10進数として解析します。幅 N は読み取る最大文字数を指定します。デフォルトの幅は、 Duration std::chrono::seconds に変換可能な場合は2、それ以外の場合は Duration の10進精度によって決定され、フィールドは固定形式のlong doubleとして解釈され、小数点文字はロケールによって決定されます(遭遇した場合)。先行ゼロは許可されますが必須ではありません。

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

%p 12時間制に関連付けられたAM/PM表記のロケール相当表現を解析します。
%R "%H:%M" に相当します。
%T "%H:%M:%S" に相当します。
%r ロケールの12時間制時刻を解析します。
%X
%EX
ロケールの時間表現を解析します。

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

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

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

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

修正されたコマンド %Ez %Oz [+|-]h[h][:mm] 形式を解析します (つまり、時間と分の間に : を必要とし、時間の先行ゼロをオプションにします)。

%Z タイムゾーンの略称または名前を解析します。これは、 A から Z a から z 0 から 9 - + _ 、および / の文字のみを含む最長の文字列として取得されます。

戻り値

is

関連項目

(C++20)
ストリームから chrono オブジェクトを解析する
(関数テンプレート)