std::chrono:: from_stream (std::chrono::local_time)
|
template
<
class
CharT,
class
Traits,
class
Duration,
class
Alloc
=
std::
allocator
<
CharT
>
>
std::
basic_istream
<
CharT, Traits
>
&
|
(C++20以降) | |
入力ストリーム is をフォーマット文字列 fmt に従って時間点 tp へ解析を試みます。
UnformattedInputFunction として振る舞うが、 is. gcount ( ) に対しては未規定の影響を及ぼす。セントリオブジェクトを構築・検査した後、 is の入力ストリームをフォーマット文字列 fmt に従って tp への解析を試みる。有効な時間点のデコードに失敗した場合、 is. setstate ( std:: ios_base :: failbit ) が呼び出され、 tp は変更されない。
フォーマット指定子
%Z
が使用され正常に解析された場合、解析された値は
*
abbrev
がnullでない場合に
*
abbrev
に代入されます。フォーマット指定子
%z
またはその修正バリアントが使用され正常に解析された場合、解析された値は
*
offset
がnullでない場合に
*
offset
に代入されます。
目次 |
パラメータ
| 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です。先行ゼロは許可されますが必須ではありません。
修正コマンド
|
|
%y
%
N
y
%Ey
%Oy
|
年の下2桁の10進数を解析します。世紀が他の方法で指定されていない場合(例:%Cを使用)、[69, 99]の範囲の値は1969年から1999年を、[00, 68]の範囲の値は2000年から2068年を参照すると見なされます。幅
N
は読み取る最大文字数を指定します。デフォルトの幅は2です。先行ゼロは許可されますが必須ではありません。
修正コマンド
|
|
%Y
%
N
Y
%EY
|
年を10進数として解析します。幅
N
は読み取る最大文字数を指定します。デフォルトの幅は4です。先行ゼロは許可されますが必須ではありません。
修正コマンド
|
|
| 月 | ||
%b
%B
%h
|
ロケールの完全または省略された大文字小文字を区別しない月名を解析します。 | |
%m
%
N
m
%Om
|
月を10進数として解析します(1月は
1
となります)。幅
N
は読み取る最大文字数を指定します。デフォルトの幅は2です。先行ゼロは許可されますが必須ではありません。
修正コマンド
|
|
| 日 | ||
%d
%
N
d
%Od
%e
%
N
e
%Oe
|
日付を10進数として解析します。幅
N
は読み取る最大文字数を指定します。デフォルトの幅は2です。先行ゼロは許可されますが必須ではありません。
修正コマンド
|
|
| 曜日 | ||
%a
%A
|
ロケールの完全または省略形の大文字小文字を区別しない曜日名を解析します。 | |
%u
%
N
u
|
ISO 週曜日を10進数 (1-7) として解析します。月曜日は
1
に対応します。幅
N
は読み取る最大文字数を指定します。デフォルトの幅は1です。先行ゼロは許可されますが必須ではありません。
|
|
%w
%
N
w
%Ow
|
曜日を10進数(0-6)として解析します。日曜日は
0
です。幅
N
は読み取る最大文字数を指定します。デフォルトの幅は1です。先行ゼロは許可されますが必須ではありません。
修正コマンド
|
|
| ISO 8601 週ベースの年 | ||
|
ISO 8601では週は月曜日から始まり、年の最初の週は以下の要件を満たさなければなりません:
|
||
%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です。先行ゼロは許可されますが必須ではありません。
修正コマンド
|
|
%W
%
N
W
%OW
|
年における週番号を10進数として解析します。年の最初の月曜日が週01の最初の日となります。それ以前の同年の日付は週00となります。幅
N
は読み取る最大文字数を指定します。デフォルトの幅は2です。先行ゼロは許可されますが必須ではありません。
修正コマンド
|
|
| 日付 | ||
%D
|
"%m/%d/%y"
と同等です。
|
|
%F
%
N
F
|
"%Y-%m-%d"
と同等。幅が指定された場合、それは
%Y
にのみ適用される。
|
|
%x
%Ex
|
ロケールの日付表現を解析します。
修正されたコマンド
|
|
| 時刻 | ||
%H
%
N
H
%OH
|
24時間制の時間を10進数として解析します。幅
N
は読み取る最大文字数を指定します。デフォルトの幅は2です。先行ゼロは許可されますが必須ではありません。
修正コマンド
|
|
%I
%
N
I
%OI
|
12時間制の時間を10進数として解析します。幅
N
は読み取る最大文字数を指定します。デフォルトの幅は2です。先行ゼロは許可されますが必須ではありません。
修正コマンド
|
|
%M
%
N
M
%OM
|
分を10進数として解析します。幅
N
は読み取る最大文字数を指定します。デフォルトの幅は2です。先行ゼロは許可されますが必須ではありません。
修正コマンド
|
|
%S
%
N
S
%OS
|
秒を10進数として解析します。幅
N
は読み取る最大文字数を指定します。デフォルトの幅は、
Duration
が
std::chrono::seconds
に変換可能な場合は2、それ以外の場合は
Duration
の10進精度によって決定され、フィールドは固定形式のlong doubleとして解釈され、小数点文字はロケールによって決定されます(遭遇した場合)。先行ゼロは許可されますが必須ではありません。
修正コマンド
|
|
%p
|
12時間制に関連付けられたAM/PM表示のロケール相当表現を解析します。 | |
%R
|
"%H:%M"
に相当します。
|
|
%T
|
"%H:%M:%S"
に相当します。
|
|
%r
|
ロケールの12時間制時刻を解析します。 | |
%X
%EX
|
ロケールの時間表現を解析します。
修正コマンド
|
|
| その他 | ||
%c
%Ec
|
ロケールの日付と時刻の表現を解析します。
修正コマンド
|
|
%z
%Ez
%Oz
|
UTCからのオフセットを
[+|-]hh[mm]
形式で解析します。例えば
-0430
はUTCより4時間30分遅れていることを指し、
04
はUTCより4時間進んでいることを指します。
修正されたコマンド
|
|
%Z
|
タイムゾーンの略称または名前を解析します。これは、
A
から
Z
、
a
から
z
、
0
から
9
、
-
、
+
、
_
、および
/
の文字のみを含む最長の文字列として取得されます。
|
|
戻り値
is
注記
このオーバーロードは、他のクロックの
time_point
に対する
from_stream
オーバーロードとは異なり、パースされたオフセット(存在する場合)をパースされたタイムスタンプから減算しません。
例
|
このセクションは不完全です
理由: 例がありません |
関連項目
|
(C++20)
|
ストリームから
chrono
オブジェクトを解析する
(関数テンプレート) |