std::chrono:: from_stream (std::chrono::year)
|
헤더 파일에 정의됨
<chrono>
|
||
|
template
<
class
CharT,
class
Traits,
class
Alloc
=
std::
allocator
<
CharT
>
>
std::
basic_istream
<
CharT, Traits
>
&
|
(C++20부터) | |
입력 스트림 is 를 형식 문자열 fmt 에 따라 std::chrono::year y 로 파싱을 시도합니다.
UnformattedInputFunction
으로 동작하지만,
is.
gcount
(
)
에 미치는 영향은 명시되지 않습니다. sentry 객체를 구성하고 검사한 후, 입력 스트림
is
를 형식 문자열
fmt
에 따라
y
로 파싱을 시도합니다. 파싱이 유효한
year
를 디코딩하는 데 실패하면,
is.
setstate
(
std::
ios_base
::
failbit
)
가 호출되고
y
는 수정되지 않습니다.
형식 지정자
%Z
가 사용되고 성공적으로 파싱되면, 파싱된 값은
*
abbrev
가 null이 아닐 경우
*
abbrev
에 할당됩니다. 형식 지정자
%z
또는 수정된 변형이 사용되고 성공적으로 파싱되면, 파싱된 값은
*
offset
가 null이 아닐 경우
*
offset
에 할당됩니다.
목차 |
매개변수
| is | - | 입력 스트림 |
| fmt | - | 형식 문자열 (아래 참조) |
| y | - | 파싱 결과를 저장할 객체 |
| abbrev | - |
null이 아닌 경우,
%Z
지정자에 해당하는 시간대 약어나 이름을 저장할 객체 포인터
|
| offset | - |
null이 아닌 경우,
%z
지정자에 해당하는 UTC 오프셋을 저장할 객체 포인터
|
형식 문자열
형식 문자열은 0개 이상의 변환 지정자와 일반 문자로 구성됩니다. 각 일반 문자는 공백 문자와 종료 널 문자를 제외하고, 입력 스트림에서 동일한 한 문자와 일치하거나, 스트림의 다음 문자가 동일하지 않을 경우 함수가 실패하게 합니다.
각 공백 문자는 입력 스트림에서 0개 이상의 공백 문자와 일치합니다.
각 수정되지 않은 변환 지정자는
%
문자로 시작하며, 그 뒤에 지정자의 동작을 결정하는 문자가 옵니다. 일부 변환 지정자는
%
문자 뒤에
E
또는
O
수정 문자가 삽입된 수정된 형태를 가집니다. 일부 변환 지정자는
%
문자 뒤에 양의 10진수 정수로 주어진 너비 매개변수(아래에서
N
으로 표시됨)가 삽입된 수정된 형태를 가집니다. 각 변환 지정자는 일치하는 문자들을 아래 표에 따라 날짜 및 시간 유형의 부분으로 해석하도록 합니다.
형식 문자열에서
%
로 시작하지만 아래 변환 지정자 중 하나와 일치하지 않는 문자 시퀀스는 일반 문자로 해석됩니다.
만약
from_stream
이 형식 문자열로 지정된 모든 내용을 파싱하는 데 실패하거나, 완전한 결과를 지정하기에 불충분한 정보만 파싱되거나, 파싱 과정에서 상충되는 정보가 발견되면,
is.
setstate
(
std::
ios_base
::
failbit
)
이 호출됩니다.
다음 변환 지정자를 사용할 수 있습니다:
|
변환
지정자 |
설명 | |
|---|---|---|
%%
|
리터럴
%
문자와 일치합니다.
|
|
%n
|
하나의 공백 문자와 일치합니다. | |
%t
|
공백 문자 0개 또는 1개와 일치합니다. | |
| 연도 | ||
%C
%
N
C
%EC
|
세기를 10진수로 파싱합니다. 너비
N
은 읽을 최대 문자 수를 지정합니다. 기본 너비는 2입니다. 선행 0이 허용되지만 필수는 아닙니다.
수정된 명령어
|
|
%y
%
N
y
%Ey
%Oy
|
연도의 마지막 두 자리 십진수를 파싱합니다. 세기가 다른 방식으로 지정되지 않은 경우(예: %C 사용), [69, 99] 범위의 값은 1969년부터 1999년까지의 연도를 의미하는 것으로 추정되며, [00, 68] 범위의 값은 2000년부터 2068년까지의 연도를 의미하는 것으로 추정됩니다. 너비
N
은 읽을 최대 문자 수를 지정합니다. 기본 너비는 2입니다. 앞에 오는 0은 허용되지만 필수는 아닙니다.
수정된 명령어
|
|
%Y
%
N
Y
%EY
|
연도를 10진수로 파싱합니다. 너비
N
은 읽을 최대 문자 수를 지정합니다. 기본 너비는 4입니다. 앞에 오는 0은 허용되지만 필수는 아닙니다.
수정된 명령어
|
|
| 월 | ||
%b
%B
%h
|
로케일의 전체 또는 약식 대소문자 구분 없는 월 이름을 파싱합니다. | |
%m
%
N
m
%Om
|
월을 10진수로 파싱합니다 (1월은
1
). 너비
N
은 읽을 최대 문자 수를 지정합니다. 기본 너비는 2입니다. 선행 0이 허용되지만 필수는 아닙니다.
수정된 명령어
|
|
| 일자 | ||
%d
%
N
d
%Od
%e
%
N
e
%Oe
|
날짜의 일(day of month)을 10진수로 파싱합니다. 너비
N
은 읽을 최대 문자 수를 지정합니다. 기본 너비는 2입니다. 선행 영(零)은 허용되지만 필수는 아닙니다.
수정된 명령어
|
|
| 요일 | ||
%a
%A
|
로케일의 전체 또는 약식 대소문자 구분 없는 요일 이름을 파싱합니다. | |
%u
%
N
u
|
ISO 평일을 10진수(1-7)로 파싱합니다. 여기서 월요일은
1
입니다. 너비
N
은 읽을 최대 문자 수를 지정합니다. 기본 너비는 1입니다. 선행 0이 허용되지만 필수는 아닙니다.
|
|
%w
%
N
w
%Ow
|
요일을 10진수(0-6)로 파싱합니다. 여기서 일요일은
0
입니다. 너비
N
은 읽을 최대 문자 수를 지정합니다. 기본 너비는 1입니다. 선행 0이 허용되지만 필수는 아닙니다.
수정된 명령어
|
|
| ISO 8601 주 기반 연도 | ||
|
ISO 8601 표준에 따르면 주(week)는 월요일부터 시작하며, 연도의 첫 번째 주는 다음 요건을 충족해야 합니다:
|
||
%g
%
N
g
|
ISO 8601 주 기반 연도의 마지막 두 자리 숫자를 파싱합니다. 너비 N 는 읽을 최대 문자 수를 지정합니다. 기본 너비는 2입니다. 선행 0이 허용되지만 필수는 아닙니다. | |
%G
%
N
G
|
ISO 8601 주 기반 연도를 10진수로 파싱합니다. 너비 N 은 읽을 최대 문자 수를 지정합니다. 기본 너비는 4입니다. 선행 0이 허용되지만 필수는 아닙니다. | |
%V
%
N
V
|
ISO 8601 주 번호를 10진수로 파싱합니다. 너비 N 은 읽을 최대 문자 수를 지정합니다. 기본 너비는 2입니다. 선행 0이 허용되지만 필수는 아닙니다. | |
| 연중 주/일 | ||
%j
%
N
j
|
연중 일자를 10진수로 파싱합니다(1월 1일은
1
). 너비
N
은 읽을 최대 문자 수를 지정합니다. 기본 너비는 3입니다. 앞에 오는 0은 허용되지만 필수는 아닙니다.
|
|
%U
%
N
U
%OU
|
연중 주 번호를 10진수로 파싱합니다. 연중 첫 번째 일요일이 01주차의 첫 번째 날입니다. 그 이전의 같은 해 날짜들은 00주차에 속합니다. 너비
N
은 읽을 최대 문자 수를 지정합니다. 기본 너비는 2입니다. 선행 영은 허용되지만 필수는 아닙니다.
수정된 명령어
|
|
%W
%
N
W
%OW
|
연중 주 번호를 10진수로 파싱합니다. 연중 첫 번째 월요일이 01주 첫 번째 날입니다. 그 이전의 같은 해 날짜들은 00주에 속합니다. 너비
N
은 읽을 최대 문자 수를 지정합니다. 기본 너비는 2입니다. 선행 0이 허용되지만 필수는 아닙니다.
수정된 명령어
|
|
| 날짜 | ||
%D
|
"%m/%d/%y"
와 동일합니다.
|
|
%F
%
N
F
|
"%Y-%m-%d"
와 동일합니다. 너비가 지정된 경우
%Y
에만 적용됩니다.
|
|
%x
%Ex
|
로케일의 날짜 표현을 파싱합니다.
수정된 명령어
|
|
| 시간대 | ||
%H
%
N
H
%OH
|
24시간 기준 시간을 10진수로 파싱합니다. 너비
N
은 읽을 최대 문자 수를 지정합니다. 기본 너비는 2입니다. 앞에 오는 0은 허용되지만 필수는 아닙니다.
수정된 명령어
|
|
%I
%
N
I
%OI
|
12시간제 시간을 10진수로 파싱합니다. 너비
N
은 읽을 최대 문자 수를 지정합니다. 기본 너비는 2입니다. 선행 0이 허용되지만 필수는 아닙니다.
수정 명령어
|
|
%M
%
N
M
%OM
|
분을 10진수로 파싱합니다. 너비
N
은 읽을 최대 문자 수를 지정합니다. 기본 너비는 2입니다. 선행 0이 허용되지만 필수는 아닙니다.
수정된 명령어
|
|
%S
%
N
S
%OS
|
초를 10진수로 파싱합니다. 너비
N
은 읽을 최대 문자 수를 지정합니다. 기본 너비는 2입니다. 앞에 오는 0은 허용되지만 필수는 아닙니다.
수정된 명령어
|
|
%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
참고 항목
|
(C++20)
|
스트림에서
chrono
객체를 파싱합니다
(함수 템플릿) |