std:: formatter <std::chrono::year>
|
헤더에 정의됨
<chrono>
|
||
|
template
<
class
CharT
>
struct formatter < std:: chrono :: year , CharT > ; |
||
std::formatter 의 특수화로, std::chrono::year 에 대한 서식 규칙을 정의합니다.
std::formatter 특수화는 일반적으로 직접 접근되지 않고, 서식 지정 함수 를 통해 사용됩니다.
형식 지정
형식 지정은 다음과 같은 형태를 가집니다
fill-and-align
(선택 사항)
width
(선택 사항)
precision
(선택 사항)
L
(선택 사항)
chrono-spec
(선택 사항)
|
|||||||||
fill-and-align
,
width
, 그리고
precision
은
표준 형식 지정
에서와 동일한 의미를 가집니다.
precision
은 표현 타입
Rep
가 부동소수점 타입인
std::chrono::duration
타입에 대해서만 유효하며, 그렇지 않으면
std::format_error
가 발생합니다.
서식 지정에 사용되는 로케일은 다음과 같이 결정됩니다:
-
형식 지정자에
L이 존재하지 않으면 기본 "C" 로케일을 사용하며, - 그렇지 않고 서식 지정 함수에 전달된 std::locale 이 존재하면 해당 로케일을 사용하며,
-
그 외의 경우 (
L이 존재하지만 서식 지정 함수에 std::locale 이 전달되지 않은 경우) 전역 로케일을 사용합니다.
만약 (일반 또는 와이드) 문자열 리터럴 인코딩 이 유니코드 인코딩 형태이고 로캘이 구현에서 정의된 로캘 집합 중 하나인 경우, 로캘에 의존하는 각 대체는 대체 문자 시퀀스가 리터럴 인코딩으로 변환된 것처럼 수행됩니다.
chrono-spec
는 하나 이상의 변환 지정자와 일반 문자(
{
,
}
,
%
제외)로 구성됩니다.
chrono-spec
는 반드시 변환 지정자로 시작해야 합니다. 모든 일반 문자는 수정 없이 출력에 기록됩니다. 각 수정되지 않은 변환 지정자는
%
문자로 시작하며, 그 뒤에 지정자의 동작을 결정하는 문자가 옵니다. 일부 변환 지정자는 수정된 형태를 가지며,
E
또는
O
수정 문자가
%
문자 뒤에 삽입됩니다. 각 변환 지정자는 아래에 설명된 대로 출력에서 적절한 문자로 대체됩니다.
달리 명시되지 않는 한,
chrono-spec
가 비어 있는 경우, chrono 객체는 다음과 같이 서식 지정 로케일(
std::
locale
::
classic
(
)
, 전달된
std::locale
객체,
std::
locale
::
global
(
)
) 중 하나)로
임뷰드
된
std::
basic_ostringstream
<
CharT
>
타입의 객체
os
에
스트리밍
하는 것처럼 서식 지정되며,
os.
str
(
)
을 출력 버퍼에 복사하고 형식 지정자에 따른 추가 패딩 및 조정이 적용됩니다.
다음 형식 지정자를 사용할 수 있습니다:
|
변환 지정자
(Conversion specifier) |
설명 | |
|---|---|---|
%%
|
리터럴
%
문자를 기록합니다.
|
|
%n
|
개행 문자를 기록합니다. | |
%t
|
수평 탭 문자를 기록합니다. | |
| 연도 | ||
%C
%EC
|
연도를 100으로 나눈 값을 내림 나눗셈으로 기록합니다. 결과가 한 자리 십진수인 경우 앞에 0을 붙입니다.
수정 명령
|
|
%y
%Oy
%Ey
|
연도의 마지막 두 자리 십진수를 기록합니다. 결과가 한 자리 숫자인 경우 앞에 0을 붙입니다.
수정 명령
수정 명령
|
|
%Y
%EY
|
연도를 십진수로 기록합니다. 결과가 네 자리 미만인 경우 네 자리가 되도록 왼쪽에 0을 채웁니다.
수정 명령
|
|
다음 지정자들은 인식되지만, std::format_error 가 발생하게 됩니다:
|
변환
지정자 |
설명 | |
|---|---|---|
| 월 | ||
%b
%h
|
로케일의 축약형 월 이름을 출력합니다. | |
%B
|
로케일의 전체 월 이름을 기록합니다. | |
%m
%Om
|
월을 10진수 숫자로 기록합니다(1월은
01
). 결과가 한 자리 숫자인 경우 0을 앞에 붙입니다.
수정 명령어
|
|
| 일자 | ||
%d
%Od
|
날짜의 일(day)을 10진수로 기록합니다. 결과가 한 자리 숫자인 경우 0을 앞에 붙입니다.
수정 명령어
|
|
%e
%Oe
|
일(day)을 십진수로 출력합니다. 결과가 한 자리 숫자인 경우 앞에 공백이 추가됩니다.
수정된 명령어
|
|
| 요일 | ||
%a
|
로케일의 약식 요일 이름을 기록합니다. | |
%A
|
로케일의 전체 요일 이름을 기록합니다. | |
%u
%Ou
|
ISO 평일을 10진수(1-7)로 기록하며, 여기서 월요일은
1
입니다.
수정된 명령어
|
|
%w
%Ow
|
요일을 10진수(0-6)로 기록하며, 여기서 일요일은
0
입니다.
수정된 명령어
|
|
| ISO 8601 주 기반 연도 | ||
|
ISO 8601 표준에 따르면 주(week)는 월요일부터 시작하며, 연도의 첫 번째 주는 다음 요건을 충족해야 합니다:
|
||
%g
|
ISO 8601 주 기반 연도의 마지막 두 자리 숫자를 기록합니다. 결과가 한 자리 숫자인 경우 0을 접두사로 붙입니다. | |
%G
|
ISO 8601 주 기반 연도를 10진수로 기록합니다. 결과가 네 자리 미만인 경우 0으로 왼쪽 채워 네 자리로 만듭니다. | |
%V
%OV
|
ISO 8601 주 번호를 10진수로 기록합니다. 결과가 한 자리 숫자인 경우 0을 접두사로 붙입니다.
수정된 명령어
|
|
| 연중 주/일 | ||
%j
|
연중 일자를 십진수로 기록합니다(1월 1일은
001
). 결과가 세 자리 미만인 경우 0으로 왼쪽 채움되어 세 자리가 됩니다.
|
|
%U
%OU
|
연중 주 번호를 10진수로 기록합니다. 연중 첫 번째 일요일이 01주차의 첫 번째 날입니다. 그 이전의 같은 해 날짜들은 00주차에 속합니다. 결과가 한 자리 숫자인 경우 0을 앞에 붙입니다.
수정된 명령어
|
|
%W
%OW
|
연중 주 번호를 10진수로 기록합니다. 연중 첫 번째 월요일이 01주차의 첫 번째 날입니다. 그 이전의 같은 해 날짜들은 00주차에 속합니다. 결과가 한 자리 숫자인 경우 0을 앞에 붙입니다.
수정된 명령어
|
|
| 날짜 | ||
%D
|
"%m/%d/%y"
와 동일합니다.
|
|
%F
|
"%Y-%m-%d"
와 동일합니다.
|
|
%x
%Ex
|
로케일의 날짜 표현을 기록합니다.
수정된 명령어
|
|
| 시간대 | ||
%H
%OH
|
24시간 기준으로 시간을 10진수로 기록합니다. 결과가 한 자리 숫자인 경우 0을 접두사로 붙입니다.
수정된 명령어
|
|
%I
%OI
|
12시간제 시간을 10진수로 기록합니다. 결과가 한 자리 숫자인 경우 0을 접두사로 붙입니다.
수정된 명령어
|
|
%M
%OM
|
분을 십진수로 기록합니다. 결과가 한 자리 숫자인 경우 0을 접두사로 붙입니다.
수정된 명령어
|
|
%S
%OS
|
초를 10진수로 기록합니다. 초 수가 10보다 작은 경우, 결과 앞에 0이 붙습니다.
입력의 정밀도를 초 단위로 정확히 표현할 수 없는 경우, 고정 형식의 10진 부동 소수점 숫자로 표시하며, 입력의 정밀도와 일치하는 소수점 이하 자릿수를 사용합니다(18자리 이하의 소수부로 10진수 초 변환이 불가능한 경우 마이크로초 정밀도까지 표시). 소수점 문자는 로케일에 따라 지역화됩니다.
수정된 명령어
|
|
%p
|
12시간제 시계와 관련된 AM/PM 표기를 지역별 해당 표현으로 출력합니다. | |
%R
|
"%H:%M"
에 해당합니다.
|
|
%T
|
"%H:%M:%S"
와 동일합니다.
|
|
%r
|
해당 지역의 12시간제 시계 시간을 기록합니다. | |
%X
%EX
|
로케일의 시간 표현을 기록합니다.
수정된 명령어
|
|
| Duration count | ||
%Q
|
지속 시간의 틱 카운트를 기록합니다. 즉, count() 를 통해 얻은 값입니다. | |
%q
|
지속 시간의 단위 접미사를 기록하며, 이는 operator<<() 에 지정된 대로입니다. | |
| 시간대 | ||
%z
%Ez
%Oz
|
UTC 기준 시차를 ISO 8601 형식으로 기록합니다. 예를 들어
-0430
은 UTC보다 4시간 30분 뒤처짐을 나타냅니다. 시차가 0인 경우
+0000
이 사용됩니다.
수정된 명령어
|
|
%Z
|
시간대 약어를 기록합니다. | |
| 기타 | ||
%c
%Ec
|
로케일의 날짜 및 시간 표현을 기록합니다.
수정된 명령어
|
|
예제
|
이 섹션은 불완전합니다
이유: 예제가 없음 |
참고 항목
|
(C++20)
|
인수의 서식화된 표현을 새 문자열에 저장합니다
(함수 템플릿) |