Namespaces
Variants

std::chrono:: from_stream (std::chrono::year_month)

From cppreference.net

헤더에 정의됨 <chrono>
template < class CharT, class Traits, class Alloc = std:: allocator < CharT > >

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

std:: chrono :: minutes * offset = nullptr ) ;
(C++20 이후)

입력 스트림 is 를 형식 문자열 fmt 에 따라 std::chrono::year_month ym 으로 파싱을 시도합니다.

UnformattedInputFunction 으로 동작하지만, is. gcount ( ) 에 대해 지정되지 않은 영향을 미칩니다. sentry 객체를 구성하고 검사한 후, 입력 스트림 is 를 형식 문자열 fmt 에 따라 ym 으로 파싱을 시도합니다. 파싱이 유효한 year_month 를 디코딩하는 데 실패하면, is. setstate ( std:: ios_base :: failbit ) 가 호출되고 ym 은 수정되지 않습니다.

형식 지정자 %Z 가 사용되고 성공적으로 파싱되면, 파싱된 값은 * abbrev 가 null이 아닐 경우 abbrev 에 할당됩니다. 형식 지정자 %z 또는 수정된 변형이 사용되고 성공적으로 파싱되면, 파싱된 값은 * offset 가 null이 아닐 경우 offset 에 할당됩니다.

목차

매개변수

is - 입력 스트림
fmt - 형식 문자열 (아래 참조)
ym - 파싱 결과를 저장할 객체
abbrev - null이 아닌 경우, %Z 지정자에 해당하는 시간대 약어 또는 이름을 저장할 객체에 대한 포인터
offset - null이 아닌 경우, %z 지정자에 해당하는 UTC 오프셋을 저장할 객체에 대한 포인터

형식 문자열

형식 문자열은 0개 이상의 변환 지정자와 일반 문자로 구성됩니다. 각 일반 문자는 공백 문자와 종료 널 문자를 제외하고, 입력 스트림에서 동일한 문자 하나와 일치하거나, 스트림의 다음 문자가 동일하지 않을 경우 함수가 실패하게 합니다.

각 공백 문자는 입력 스트림에서 0개 이상의 공백 문자와 일치합니다.

각 수정되지 않은 변환 지정자는 % 문자로 시작하며, 그 뒤에 지정자의 동작을 결정하는 문자가 옵니다. 일부 변환 지정자는 % 문자 뒤에 E 또는 O 수정자 문자가 삽입된 수정된 형태를 가집니다. 일부 변환 지정자는 % 문자 뒤에 양의 십진수 정수로 주어진 너비 매개변수(아래에서 N 로 표시)가 삽입된 수정된 형태를 가집니다. 각 변환 지정자는 일치하는 문자들을 아래 표에 따라 날짜 및 시간 유형의 부분으로 해석하도록 합니다.

형식 문자열에서 % 로 시작하지만 아래 변환 지정자 중 하나와 일치하지 않는 문자 시퀀스는 일반 문자로 해석됩니다.

만약 from_stream 이 형식 문자열로 지정된 모든 내용을 파싱하는 데 실패하거나, 완전한 결과를 지정하기에 불충분한 정보만 파싱되거나, 파싱 과정에서 상충되는 정보가 발견되면, is. setstate ( std:: ios_base :: failbit ) 이 호출됩니다.

다음 변환 지정자를 사용할 수 있습니다:

변환
지정자
설명
%% 리터럴 % 문자와 일치합니다.
%n 하나의 공백 문자와 일치합니다.
%t 공백 문자 0개 또는 1개와 일치합니다.
연도
%C
% N C
%EC
세기를 10진수로 파싱합니다. 너비 N 은 읽을 최대 문자 수를 지정합니다. 기본 너비는 2입니다. 선행 영은 허용되지만 필수는 아닙니다.

수정된 명령어 %EC 는 로케일의 대체 세기 표현을 해석합니다.

%y
% N y
%Ey
%Oy
연도의 마지막 두 자리 십진수를 파싱합니다. 세기가 다른 방식으로 지정되지 않은 경우(예: %C 사용), [69, 99] 범위의 값은 1969년부터 1999년까지의 연도를 의미하는 것으로 추정되며, [00, 68] 범위의 값은 2000년부터 2068년까지의 연도를 의미하는 것으로 추정됩니다. 너비 N 은 읽을 최대 문자 수를 지정합니다. 기본 너비는 2입니다. 앞에 오는 0은 허용되지만 필수는 아닙니다.

수정된 명령어 %Ey %Oy 는 로캘의 대체 표현을 해석합니다.

%Y
% N Y
%EY
연도를 10진수로 파싱합니다. 너비 N 은 읽을 최대 문자 수를 지정합니다. 기본 너비는 4입니다. 선행 0이 허용되지만 필수는 아닙니다.

수정된 명령어 %EY 는 로캘의 대체 표현을 해석합니다.

%b
%B
%h
로케일의 전체 또는 약식 대소문자 구분 없는 월 이름을 파싱합니다.
%m
% N m
%Om
월을 10진수로 파싱합니다(1월은 1 ). 너비 N 은 읽을 최대 문자 수를 지정합니다. 기본 너비는 2입니다. 선행 0이 허용되지만 필수는 아닙니다.

수정된 명령어 %Om 은 로캘의 대체 표현을 해석합니다.

일자
%d
% N d
%Od
%e
% N e
%Oe
날짜의 일(day of month)을 10진수로 파싱합니다. 너비 N 은 읽을 최대 문자 수를 지정합니다. 기본 너비는 2입니다. 선행 영(零)은 허용되지만 필수는 아닙니다.

수정된 명령어 %Od %Oe 는 로캘의 대체 표현을 해석합니다.

요일
%a
%A
로케일의 전체 또는 약식 대소문자 구분 없는 요일 이름을 파싱합니다.
%u
% N u
ISO 평일을 10진수(1-7)로 파싱합니다. 여기서 월요일은 1 입니다. 너비 N 은 읽을 최대 문자 수를 지정합니다. 기본 너비는 1입니다. 선행 0이 허용되지만 필수는 아닙니다.
%w
% N w
%Ow
요일을 10진수(0-6)로 파싱합니다. 여기서 일요일은 0 입니다. 너비 N 은 읽을 최대 문자 수를 지정합니다. 기본 너비는 1입니다. 선행 0이 허용되지만 필수는 아닙니다.

수정된 명령어 %Ow 는 로캘의 대체 표현을 해석합니다.

ISO 8601 주 기반 연도

ISO 8601 표준에 따르면 주(week)는 월요일부터 시작하며, 연도의 첫 번째 주는 다음 요건을 충족해야 합니다:

  • 1월 4일을 포함해야 함
  • 해당 연도의 첫 번째 목요일을 포함해야 함
%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입니다. 선행 0이 허용되지만 필수는 아닙니다.

수정된 명령어 %OU 는 로캘의 대체 표현을 해석합니다.

%W
% N W
%OW
연중 주 번호를 10진수로 파싱합니다. 해당 연도의 첫 번째 월요일이 01주 첫째 날입니다. 그 이전의 같은 해 날짜들은 00주에 속합니다. 너비 N 은 읽을 최대 문자 수를 지정합니다. 기본 너비는 2입니다. 선행 0이 허용되지만 필수는 아닙니다.

수정된 명령어 %OW 는 로캘의 대체 표현을 해석합니다.

날짜
%D "%m/%d/%y" 와 동일합니다.
%F
% N F
"%Y-%m-%d" 와 동일합니다. 너비가 지정된 경우 %Y 에만 적용됩니다.
%x
%Ex
로케일의 날짜 표현을 파싱합니다.

수정된 명령어 %Ex 는 로케일의 대체 날짜 표현을 해석합니다.

시간대
%H
% N H
%OH
24시간 기준 시간을 10진수로 파싱합니다. 너비 N 은 읽을 최대 문자 수를 지정합니다. 기본 너비는 2입니다. 앞에 오는 0은 허용되지만 필수는 아닙니다.

수정된 명령어 %OH 는 로캘의 대체 표현을 해석합니다.

%I
% N I
%OI
12시간제 시간을 10진수로 파싱합니다. 너비 N 은 읽을 최대 문자 수를 지정합니다. 기본 너비는 2입니다. 선행 영은 허용되지만 필수는 아닙니다.

수정된 명령어 %OI 는 로캘의 대체 표현을 해석합니다.

%M
% N M
%OM
분을 10진수로 파싱합니다. 너비 N 은 읽을 최대 문자 수를 지정합니다. 기본 너비는 2입니다. 선행 0이 허용되지만 필수는 아닙니다.

수정된 명령어 %OM 은 로캘의 대체 표현을 해석합니다.

%S
% N S
%OS
초를 10진수로 파싱합니다. 너비 N 은 읽을 최대 문자 수를 지정합니다. 기본 너비는 2입니다. 선행 0이 허용되지만 필수는 아닙니다.

수정 명령어 %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 객체를 파싱합니다
(함수 템플릿)