<chrono>
함수
abs(duration)
이면 d >= d.zero()
반환 d
하고, 그렇지 않으면 .를 반환합니다-d
.
구문
template <class Rep, class Period>
constexpr duration<Rep, Period> abs(duration<Rep, Period> d ); // C++17
매개 변수
Rep
원본 duration
d
의 내부 표현 형식입니다.
Period
std::ratio
소스 Rep
형식에 대한 1초의 비율(즉, 초당 초Rep
)을 나타내는 형식입니다.
d
원본 duration
개체입니다.
반환 값
d
의 절대값입니다.
예: abs(duration)
// compile using: /std:c++latest
#include <chrono>
#include <iostream>
int main()
{
std::cout << abs(-24h);
return 0;
}
24h
ceil(duration)
지정된 duration
형식보다 크거나 같은 대상 형식에서 나타낼 수 duration
있는 가장 작은 값을 반환합니다.
구문
template<class ToDuration, class Rep, class Period>
constexpr ToDuration
ceil(const duration<Rep, Period>& d); // C++17
매개 변수
ToDuration
대상 duration
형식입니다. 의 특수화 duration
로 제한됩니다.
Rep
원본 duration
d
의 내부 표현 형식입니다.
Period
std::ratio
소스 Rep
형식에 대한 1초의 비율(즉, 초당 초Rep
)을 나타내는 형식입니다.
d
원본 duration
개체입니다.
반환 값
매개 변수d
보다 크거나 같은 가장 duration
작은 표현을 ToDuration
반환합니다.
설명
ceil
는 형식이 .의 duration
인스턴스가 아닌 한 ToDuration
오버로드 확인에 참여하지 않습니다.
ceil(time_point)
지정된 시간 지점보다 크거나 같은 대상 duration
에서 나타낼 수 있는 가장 작은 시간 지점을 반환합니다.
구문
template<class ToDuration, class Clock, class Duration>
constexpr time_point<Clock, ToDuration>
ceil(const time_point<Clock, Duration>& t); // C++17
매개 변수
ToDuration
대상 duration
형식입니다. 의 특수화 duration
로 제한됩니다.
Clock
결과의 공통 클록 형식 및 원본 매개 변수 tp
입니다.
Duration
의 형식입니다 duration
tp
.
tp
원본 time_point
개체입니다.
반환 값
보다 크거나 같은 값을 사용하여 ToDuration
나타낼 수 있는 가장 작은 시간 지점을 반환합니다 tp
. 효과적으로, time_point<Clock, ToDuration>(ceil<ToDuration>(tp.time_since_epoch()));
.
설명
ceil
는 형식이 .의 duration
인스턴스가 아닌 한 ToDuration
오버로드 확인에 참여하지 않습니다.
clock_cast
한 클록을 time_point
다른 클록에 해당하는 time_point
클록으로 변환합니다.
구문
template <class DestClock, class SourceClock, class Duration>
auto clock_cast(const time_point<SourceClock, Duration>& t); // C++20
매개 변수
DestClock
변환할 클록 형식입니다 time_point
.
Duration
duration
또는 지정한 SourceClock
항목의 값입니다.
SourceClock
변환할 time_point
클록 형식을 기반으로 합니다.
t
변환할 time_point
입니다.
반환 값
time_point
에 해당하지만 .에 t
한정된 값입니다DestClock
.
설명
매개 변수 SourceClock
이며 Duration
명시적으로 전달되지 않은 경우 클래스 템플릿 인수 추론을 통해 유추할 수 있습니다. 예를 들어 지정된 clock_cast<utc_clock>(file_clock::now())
경우는 SourceClock
Duration
추론됩니다 file_clock::duration
.
다음 올바른 형식의 클록 변환 목록에서 가장 적은 변환 단계를 SourceClock
거쳐야 하는 DestClock
클록 변환이 선택됩니다.
clock_time_conversion<DestClock, SourceClock>{}(t)
clock_time_conversion<DestClock, system_clock>{}(
clock_time_conversion<system_clock, SourceClock>{}(t))
clock_time_conversion<DestClock, utc_clock>{}(
clock_time_conversion<utc_clock, SourceClock>{}(t))
clock_time_conversion<DestClock, utc_clock>{}(
clock_time_conversion<utc_clock, system_clock>{}(
clock_time_conversion<system_clock, SourceClock>{}(t)))
clock_time_conversion<DestClock, system_clock>{}(
clock_time_conversion<system_clock, utc_clock>{}(
clock_time_conversion<utc_clock, SourceClock>{}(t)))
수행하는 작업에 clock_time_conversion
대한 자세한 내용은 구조체를 참조 clock_time_conversion
하세요.
본보기 clock_cast
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
utc_clock::time_point t = clock_cast<utc_clock>(file_clock::now());
std::cout << t;
return 0;
}
2021-10-11 22:58:17.8540720
current_zone
현재 표준 시간대 개체를 가져옵니다.
구문
const time_zone* current_zone(); // C++20
반환 값
를 호출하는 것처럼 포인터 time_zone
를 반환합니다 get_tzdb().current_zone()
. 표준 시간대 데이터베이스에 대한 첫 번째 참조이고 표준 시간대 데이터베이스를 초기화할 수 없는 경우 예외가 throw runtime_error
됩니다.
duration_cast
duration
지정된 대상 duration
형식으로 캐스팅합니다.
구문
template <class ToDuration, class Rep, class Period>
constexpr ToDuration
duration_cast(const duration<Rep, Period>& d); // C++11
매개 변수
ToDuration
대상 duration
형식입니다. 의 특수화 duration
로 제한됩니다.
Rep
원본 duration
d
의 내부 표현 형식입니다.
Period
std::ratio
소스 Rep
형식에 대한 1초의 비율(즉, 초당 초Rep
)을 나타내는 형식입니다.
d
대상 duration
형식으로 캐스팅할 원본 duration
개체입니다.
반환 값
를 나타내는 형식 ToDuration
의 개체입니다 duration
d
. 대상 형식에 맞게 필요한 경우 잘립니다. 부동 소수점을 duration
정수 duration
로 캐스팅한 결과는 원본 NaN
에 무한대, 무한대 또는 대상 duration
의 표현이 너무 큰 경우 정의되지 않습니다.
설명
시간(분)을 초로 변환하는 경우와 같이 원본 기간이 대상 기간에서 정확히 나눌 수 있는 경우 형식 간 duration
을 변환하는 데 사용할 duration_cast
필요가 없습니다. 또한 부동 소수점 duration
형식 간에 변환할 필요가 없습니다. 일반 캐스트 또는 생성자를 사용하여 두 변환을 duration
모두 수행할 수 있습니다.
duration_cast
의 인스턴스duration
가 아닌 한 ToDuration
오버로드 확인에 참여하지 않습니다. 암시적 변환 대신 사용하여 static_cast
모든 변환을 수행합니다. 가능하면 곱하기 및 나누기 방지 예를 들어 컴파일러가 대상 및 원본 기간의 공통 비율에 숫자 또는 분모가 1임을 알고 있는 경우입니다. 계산은 사용 가능한 가장 넓은 형식으로 수행된 다음, 완료되면 결과 형식으로 static_cast
변환됩니다.
본보기 duration_cast
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
seconds s(1);
std::cout << duration_cast<microseconds>(s) << '\n';
std::cout << duration_cast<nanoseconds>(s) << '\n';
return 0;
}
1000000us
1000000000ns
floor(duration)
지정된 duration
형식보다 작거나 같은 대상 형식에서 가장 큰 표현 가능 duration
값을 반환합니다.
구문
template<class ToDuration, class Rep, class Period>
constexpr ToDuration
floor(const duration<Rep, Period>& d); // C++17
매개 변수
ToDuration
대상 duration
형식입니다. 의 특수화 duration
로 제한됩니다.
Rep
원본 duration
d
의 내부 표현 형식입니다.
Period
std::ratio
소스 Rep
형식에 대한 1초의 비율(즉, 초당 초Rep
)을 나타내는 형식입니다.
d
원본 duration
개체입니다.
반환 값
매개 변수d
보다 작거나 같은 가장 큰 duration
표현 가능 ToDuration
값을 반환합니다.
설명
floor
는 형식이 .의 duration
인스턴스가 아닌 한 ToDuration
오버로드 확인에 참여하지 않습니다.
floor(time_point)
지정된 시간 지점보다 작거나 같은 대상 duration
에서 나타낼 수 있는 가장 큰 시간 지점을 반환합니다.
구문
template<class ToDuration, class Clock, class Duration>
constexpr time_point<Clock, ToDuration>
floor(const time_point<Clock, Duration>& tp); // C++17
매개 변수
ToDuration
대상 duration
형식입니다. 의 특수화 duration
로 제한됩니다.
Clock
결과의 공통 클록 형식 및 원본 매개 변수 tp
입니다.
Duration
의 형식입니다 duration
tp
.
tp
원본 time_point
개체입니다.
반환 값
보다 작거나 같은 값을 사용하여 ToDuration
나타낼 수 있는 가장 큰 시간 지점을 반환합니다 tp
. 효과적으로, time_point<Clock, ToDuration>(floor<ToDuration>(tp.time_since_epoch()));
.
설명
floor
는 형식이 .의 duration
인스턴스가 아닌 한 ToDuration
오버로드 확인에 참여하지 않습니다.
from_stream
지정된 형식을 사용하여 입력 스트림을 시간 또는 간격 형식(std::chrono
예: day
, month
, month_day
weekday
, year
, year_month
, year_month_day
등) 중 하나로 구문 분석합니다.
구문 분석이 실패 is.setstate
하면 (ios_base::failbit
)가 호출되고 출력 매개 변수가 수정되지 않습니다.
// 1) day - C++20
template<class charT class traits, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
basic_istream<charT, traits>& is, const charT* fmt,
day& d, basic_string<charT, traits, Alloc>* abbrev = nullptr,
minutes* offset = nullptr);
// 2) duration - C++20
template<class charT, class traits, class Rep, class Period, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
basic_istream<charT, traits>& is, const charT* fmt,
duration<Rep, Period>& dur, basic_string<charT, traits, Alloc>* abbrev = nullptr,
minutes* offset = nullptr);
// 3) file_time - C++20
template<class charT, class traits, class Duration, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
basic_istream<charT, traits>& is, const charT* fmt,
file_time<Duration>& ft, basic_string<charT, traits, Alloc>* abbrev = nullptr,
minutes* offset = nullptr);
// 4) gps_time - C++20
template<class charT, class traits, class Duration, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
basic_istream<charT, traits>& is, const charT* fmt,
gps_time<Duration>& gt, basic_string<charT, traits, Alloc>* abbrev = nullptr,
minutes* offset = nullptr);
// 5) local_time - C++20
template<class charT, class traits, class Duration, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
basic_istream<charT, traits>& is, const charT* fmt,
local_time<Duration>& lt, basic_string<charT, traits, Alloc>* abbrev = nullptr,
minutes* offset = nullptr);
// 6) month - C++20
template<class charT, class traits, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
basic_istream<charT, traits>& is, const charT* fmt,
month& m, basic_string<charT, traits, Alloc>* abbrev = nullptr,
minutes* offset = nullptr);
// 7) month_day - C++20
template<class charT, class traits, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
basic_istream<charT, traits>& is, const charT* fmt,
month_day& md, basic_string<charT, traits, Alloc>* abbrev = nullptr,
minutes* offset = nullptr);
// 8) utc_time - C++20
template<class charT, class traits, class Duration, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
basic_istream<charT, traits>& is, const charT* fmt,
utc_time<Duration>& ut, basic_string<charT, traits, Alloc>* abbrev = nullptr,
minutes* offset = nullptr);
// 9) sys_time - C++20
template<class charT, class traits, class Duration, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
basic_istream<charT, traits>& is, const charT* fmt,
sys_time<Duration>& st, basic_string<charT, traits, Alloc>* abbrev = nullptr,
minutes* offset = nullptr);
// 10) tai_time - C++20
template<class charT, class traits, class Duration, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
basic_istream<charT, traits>& is, const charT* fmt,
tai_time<Duration>& tt, basic_string<charT, traits, Alloc>* abbrev = nullptr,
minutes* offset = nullptr);
// 11) weekday - C++20
template<class charT, class traits, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
basic_istream<charT, traits>& is, const charT* fmt,
weekday& wd, basic_string<charT, traits, Alloc>* abbrev = nullptr,
minutes* offset = nullptr);
// 12) year - C++20
template<class charT, class traits, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
basic_istream<charT, traits>& is, const charT* fmt,
year& y, basic_string<charT, traits, Alloc>* abbrev = nullptr,
minutes* offset = nullptr);
// 13) year_month - C++20
template<class charT, class traits, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
basic_istream<charT, traits>& is, const charT* fmt,
year_month& ym, basic_string<charT, traits, Alloc>* abbrev = nullptr,
minutes* offset = nullptr);
// 14) year_month_day - C++20
template<class charT, class traits, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
basic_istream<charT, traits>& is, const charT* fmt,
year_month_day& ymd, basic_string<charT, traits, Alloc>* abbrev = nullptr,
minutes* offset = nullptr);
템플릿 매개 변수
Alloc
문자열의 메모리 할당 및 할당 취소를 처리하는 할당자 개체를 나타내는 형식입니다.
charT
스트림에서 읽고 문자열에 저장할 단일 문자의 데이터 형식입니다. C++ 표준 라이브러리는 형식 요소, , for, for 및 for에 대한 형식 wstring
char32_t
char
u32string
wchar_t
char16_t
u16string
정의 string
와 함께 이 클래스 템플릿의 특수화를 제공합니다.
traits
charT
특수화 및 basic_istream
특성에 basic_string
대해 설명합니다.
Rep
형식의 내부 표현 형식입니다 duration
.
Period
std::ratio
소스 Rep
형식에 대한 1초의 비율(즉, 초당 초Rep
)을 나타내는 형식입니다.
Duration
duration
시간 특수화에 사용되는 형식입니다.
매개 변수
abbrev
그렇지 않은 nullptr
경우 abbrev
형식 지정자가 %Z
지정되고 구문 분석이 성공하면 abbrev
구문 분석된 값이 포함됩니다.
d
구문 분석이 성공하면 함수가 반환되는 구문 분석된 날짜가 포함됩니다.
dur
duration
스트림에서 구문 분석된 것입니다.
fmt
입력과 일치하는 데 사용되는 형식 문자열입니다. 구문 분석 서식 옵션 목록은 구문 분석 서식 문자열을 참조하세요.
ft
file_time
스트림에서 구문 분석된 것입니다.
gt
gps_time
스트림에서 구문 분석된 것입니다.
is
구문 분석할 입력 스트림입니다.
lt
local_time
스트림에서 구문 분석된 것입니다.
m
month
스트림에서 구문 분석된 것입니다.
md
month_day
스트림에서 구문 분석된 것입니다.
offset
그렇지 않은 경우 offset
형식 지정자 %z
또는 수정된 변형(예: %0z
%Ez
구문 분석이 성공offset
)이면 구문 분석된 값을 가리킵니nullptr
다.
st
sys_time
스트림에서 구문 분석된 것입니다.
tt
tai_time
스트림에서 구문 분석된 것입니다.
ut
utc_time
스트림에서 구문 분석된 것입니다.
wd
weekday
스트림에서 구문 분석된 것입니다.
y
year
스트림에서 구문 분석된 것입니다.
ym
year_month
스트림에서 구문 분석된 것입니다.
ymd
year_month_day
스트림에서 구문 분석된 것입니다.
반환 값
입력 스트림, is
예: from_stream
// compile using: /std:c++latest
#include <chrono>
#include <iostream>
int main()
{
std::istringstream str{ "22" };
std::basic_istream<char> stream{ str.rdbuf() };
std::chrono::day d;
std::chrono::from_stream(stream, "%d", d);
std::cout << d << "\n";
return 0;
}
22
설명
7) 사용되고 성공적으로 구문 분석된 경우 %Z
해당 값은 null이 아닌 경우 abbrev
할당*abbrev
됩니다. (또는 수정된 변형)을 사용하고 성공적으로 구문 분석하는 경우 %z
해당 값은 null이 아닌 경우 offset
할당 *offset
됩니다.
12) 사용되고 성공적으로 구문 분석된 경우 %Z
null이 아닌 경우 abbrev
해당 값이 할당 *abbrev
됩니다. (또는 수정된 변형)을 사용하고 성공적으로 구문 분석하는 경우 %z
해당 값은 null이 아닌 경우 offset
할당 *offset
됩니다.
from_stream
형식 문자열
형식은 다음 문자열 중 하나일 수 있습니다.
날짜
지정자 | 설명 |
---|---|
%D |
%m/%d/%y 와 같습니다. |
%F % NF |
%Y-%m-%d 과 동일합니다. 너비 N 를 사용하여 수정한 경우 너비는 .에만 %Y 적용됩니다. |
%x %Ex |
로캘의 날짜 표현입니다.%Ex 로캘의 대체 날짜 표현을 구문 분석합니다.1 |
요일
지정자 | 설명 |
---|---|
%d %Od % Nd %e %Oe % Ne |
10진수로 지정된 월의 날짜입니다.% Nd 은 읽을 최대 문자 수를 지정합니다(예 %1d : .). N을 지정하지 않으면 기본값은 2입니다.선행 0은 허용되지만 필수는 아닙니다. %Od (문자 O , 0이 아님)은 로캘의 대체 표현을 해당 월의 날짜로 해석합니다.1 %e 와 동일 %d 하며 다음과 같이 %d 수정할 수 있습니다.1 |
요일
지정자 | 설명 |
---|---|
%a %A |
로캘의 전체 또는 약어 대/소문자를 구분하지 않는 평일 이름입니다.%A 는 %a 와 같습니다. |
%u % Nu |
ISO 평일은 10진수(1-7)로, 월요일은 1입니다. % Nu 은 읽을 최대 문자 수를 지정합니다(예 %2u : .). N을 지정하지 않으면 기본값은 1입니다. 선행 0은 허용되지만 필수는 아닙니다. |
%w % Nw %Ow |
평일은 10진수(0-6)로, 일요일은 0입니다.% Nw 은 읽을 최대 문자 수를 지정합니다(예 %2w : .). N을 지정하지 않으면 기본값은 1입니다.선행 0은 허용되지만 필수는 아닙니다. %Ow 0이 아닌 문자 O 는 로캘의 대체 표현을 해석합니다.1 |
해당 연도의 주/일
지정자 | 설명 |
---|---|
%j % Nj |
서식이 지정된 형식이 기간의 특수화인 경우 패딩이 없는 10진수 일수입니다. 그렇지 않으면 10진수로 해당 연도의 날입니다. Jan 1 은 001 입니다. 결과가 3자리 미만이면 왼쪽에 0~3자리 숫자로 0 채워집니다.% Nj 은 읽을 최대 문자 수를 지정합니다(예 %2j : .). N을 지정하지 않으면 기본값은 3입니다. 선행 숫자는 허용되지만 필수는 아닙니다. |
%U % NU %OU |
연도의 주 번호(10진수)입니다. 올해의 첫 번째 일요일은 요 01 일의 첫 번째 날입니다. 해당 주 이전의 같은 해의 일 수입니다 00 . 결과가 한 자리이면 접두사(0)가 추가됩니다 0 .% NU 은 읽을 최대 문자 수를 지정합니다(예 %2U : .). N을 지정하지 않으면 기본값은 2입니다.선행 0은 허용되지만 필수는 아닙니다. %OU 0이 아닌 문자 O 는 로캘의 대체 표현을 구문 분석합니다.1 |
%W % NW %OW |
연도의 주 번호(10진수)입니다. 올해 첫 번째 월요일은 요 01 일입니다. 해당 주 이전의 같은 해의 일 수입니다 00 .결과가 한 자리이면 접두사(0)가 추가됩니다 0 .% NW 은 읽을 최대 문자 수를 지정합니다(예 %2W : .). N을 지정하지 않으면 기본값은 1입니다.선행 0은 허용되지만 필수는 아닙니다. %OW 0이 아닌 문자 O 는 로캘의 대체 표현을 구문 분석합니다.1 |
하루 중 시간
지정자 | 설명 |
---|---|
%H % NH %OH |
10진수인 시간(24시간 시계)입니다. 결과가 한 자리이면 접두사로 0이 0 됩니다.% NH 은 읽을 최대 문자 수를 지정합니다(예 %1H : .). N을 지정하지 않으면 기본값은 2입니다.선행 0은 허용되지만 필수는 아닙니다. %OH 0이 아닌 문자 O 는 로캘의 대체 표현을 구문 분석합니다.1 |
%I % NI %OI |
10진수인 시간(12시간 시계)입니다. 결과가 한 자리이면 접두사(0)가 추가됩니다 0 .% NI 은 읽을 최대 문자 수를 지정합니다(예 %1I : .). N을 지정하지 않으면 기본값은 2입니다.선행 0은 허용되지만 필수는 아닙니다. %OI 0이 아닌 문자 O 는 로캘의 대체 표현을 구문 분석합니다.1 |
%M % NM %OM |
10진수인 분입니다. 결과가 한 자리이면 접두사(0)가 추가됩니다 0 .% NM 은 읽을 최대 문자 수를 지정합니다(예 %3M : .). N을 지정하지 않으면 기본값은 2입니다.선행 0은 허용되지만 필수는 아닙니다. %OM 0이 아닌 문자 O 는 로캘의 대체 표현을 구문 분석합니다.1 |
%S % NS %OS |
초를 10진수로 지정합니다. 초 수가 10보다 작으면 결과에 접두사(0)가 추가됩니다 0 . 입력의 정밀도를 초 단위로 정확하게 나타낼 수 없는 경우 형식은 고정 형식의 소수 부동 소수점 숫자입니다. 함수가 소수 자릿수 18초 내에 부동 소수점 소수점 초를 변환할 수 없는 경우 마이크로초 정밀도가 있습니다. 그렇지 않으면 전체 자릿수가 입력의 전체 자릿수와 일치합니다. 소수점의 문자는 로캘에 따라 지역화됩니다.% NS 은 읽을 최대 문자 수를 지정합니다(예 %3S : .). N을 지정하지 않으면 기본값은 2입니다.선행 0은 허용되지만 필수는 아닙니다. %OS 0이 아닌 문자 O 는 로캘의 대체 표현을 구문 분석합니다.1 |
%p |
12시간 시계와 연결된 AM/PM 지정에 해당하는 로캘입니다. |
%r |
로캘의 12시간 시계 시간입니다. |
%R |
%H:%M 과 동일합니다. |
%T |
"%H:%M:%S" 과 동일합니다. |
%X , %EX |
로캘의 시간 표현입니다.%EX 대체 로캘의 시간 표현을 구문 분석합니다.1 |
Month
지정자 | 설명 |
---|---|
%b , , %B %h |
로캘의 전체 또는 약어 월 이름입니다. 값에 유효한 월이 없으면 예외가 format_error throw됩니다.%h 는 %b 와 같습니다. |
%m , % Nm , %Om |
10진수인 월입니다. 1월은 1입니다.% Nm 은 읽을 최대 문자 수를 지정합니다(예 %3m : .). N을 지정하지 않으면 기본값은 2입니다.선행 0은 허용되지만 필수는 아닙니다. %Om 0이 아닌 문자 O 는 로캘의 대체 표현을 해석합니다.1 |
Year
지정자 | 설명 |
---|---|
%C , % NC , %EC |
10진수로 된 세기입니다.% NC 은 읽을 최대 문자 수를 지정합니다(예 %1N : .). N을 지정하지 않으면 기본값은 2입니다. 선행 0은 허용되지만 필수는 아닙니다.%EC 는 세기의 로캘의 대체 표현을 해석합니다. |
%y , % Ny , %Ey , %Oy |
연도의 마지막 두 10진수 숫자입니다. 세기가 지정되지 않은 경우(예: 사용 %C ) 범위 [69, 99] 의 값은 1969년에서 1999년으로 추정되며 범위 [00, 68] 의 값은 2000년에서 2068년으로 추정됩니다.% Ny 은 읽을 최대 문자 수를 지정합니다. N을 지정하지 않으면 기본값은 2입니다.선행 0은 허용되지만 필수는 아닙니다. %Ey 및 %Oy (문자 O 가 0이 아님) 로캘의 대체 표현을 해석합니다.1 |
%Y , % NY , %EY , |
10진수인 연도입니다. 결과가 4자리 미만이면 왼쪽에 0~4자리 숫자로 0 채워집니다.% NY 은 읽을 최대 문자 수를 지정합니다. N을 지정하지 않으면 기본값은 4입니다.%EY 로캘의 대체 전체 연도 표현을 구문 분석합니다.1 |
ISO 8601 주 기반 연도
ISO 8601에서는 주가 월요일부터 시작됩니다. 올해의 첫 번째 주에는 1월 4일이 포함되어야 하며 해당 연도의 첫 번째 목요일이 포함되어야 합니다.
지정자 | 치환 |
---|---|
%g % Ng |
ISO 주 기반 연도의 마지막 두 10진수 숫자입니다. 결과가 한 자리이면 접두사 0 로 0이 됩니다. % Ng 은 읽을 최대 문자 수를 지정합니다(예 %1g : .). N을 지정하지 않으면 기본값은 2입니다. |
%G % NG |
ISO 주 기반 연도를 10진수로 표시합니다. 결과가 4자리 미만이면 왼쪽에 0~4자리 숫자로 0 채워집니다. % NG 은 읽을 최대 문자 수를 지정합니다(예 %1G : .). N을 지정하지 않으면 기본값은 4입니다. |
%V %OV % NV |
ISO 주 기반 주 번호(10진수)입니다. 결과가 한 자리이면 접두사(0)가 추가됩니다 0 . % NV 은 읽을 최대 문자 수를 지정합니다(예 %1V : .). N을 지정하지 않으면 기본값은 2입니다.%OV 0이 아닌 문자 O 는 로캘의 대체 표현을 구문 분석합니다.1 |
일반
지정자 | 치환 |
---|---|
%% |
% 문자와 일치 |
%c %Ec |
로캘의 날짜 및 시간 표현입니다.%Ec 는 로캘의 대체 날짜 및 시간 표현을 해석합니다.1 |
%n |
새 줄 문자와 일치 |
%t |
공백 문자 0개 또는 1개 일치 |
%z %Ez %Oz |
UTC의 오프셋 형식 [+|-]hh[mm] 입니다. 예를 들어 UTC -0430 보다 4시간 30분 뒤를 참조하고 04 UTC보다 4시간 앞서 참조합니다.%Ez 및 %Oz (문자O 가 0이 아님) 시간 및 분 사이를 : 구문 분석하고 시간 필드 선택 사항1[+|-]h[h][:mm] 에서 선행 0을 렌더링합니다. 예를 들어 UTC -04:30 보다 4시간 30분 뒤를 참조하고 4는 UTC보다 4시간 앞을 가리킵니다. |
%Z |
표준 시간대 약어 또는 이름입니다. 한 단어가 구문 분석됩니다. 이 단어에는 기본 원본 문자 집합의 영숫자 문자 또는 _ , 또는 - / + . |
형식별 플래그
클래스 | 지정자/플래그 |
---|---|
day |
d, e |
duration |
j, H, I, M, S, r, R, T, p, (q, Q는 구문 분석이 아닌 형식에만 해당) |
file_time |
Z, z, c, x, X, D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, d, e, a, A, u, w, H, I, M, S, r, R, T, p |
gps_time |
Z, z, c, x, X, D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, d, e, a, A, u, w, H, I, M, S, r, R, T, p |
hh_mm_ss |
H, I, M, S, r, R, T, p |
local_time |
c, x, X, D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, d, e, a, A, u, w, H, I, M, S, r, R, T, p |
local_time_format_t |
z, Z, c, x, X, D, F, Y, C, y, b, B, h, m, d, e, a, A, u, w, H, I, M, S, r, R, T, p, g, G, U, V, W |
local_info |
z, Z |
month |
b, h, B, m |
month_day |
B, d, j, e, b, h, m |
month_day_last |
B, d, j, e, b, h, m |
month_weekday |
b, B, h, m, a, A, u, w |
month_weekday_last |
b, B, h, m, a, A, u, w |
sys_info |
z, Z |
sys_time |
Z, z, c, x, X, D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, d, e, a, A, u, w, H, I, M, S, r, R, T, p |
tai |
Z, z, c, x, X, D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, d, e, a, A, u, w, H, I, M, S, r, R, T, p |
utc_time |
Z, z, c, x, X, D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, d, e, a, A, u, w, H, I, M, S, r, R, T, p |
weekday |
a, A, u, w |
weekday_indexed |
a, A, u, w |
weekday_last |
a, A, u, w |
year |
Y, y, C |
year_month |
Y, y, B, g, G, h, C, b, m |
year_month_day |
D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, d, e, a, A, u, w |
year_month_day_last |
D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, d, e, a, A, u, w |
year_month_weekday |
D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, d, e, a, A, u, w |
year_month_weekday_last |
D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, d, e, a, A, u, w |
zoned_time |
z, Z, c, x, X, D, F, Y, C, y, b, B, h, m, d, e, a, A, u, w, H, I, M, S, r, R, T, p, g, G, U, V, W |
1구현은 현재 strftime O
과 일치하지만(문자 O) e
수락되지만 무시됩니다. 즉, "%Od"
로 해석됩니다 "%d"
.
get_leap_second_info
지정된 시간에 대한 값을 leap_second_info
반환합니다. 윤초 삽입 중에 제공된 시간이 발생하는지 여부에 대한 정보를 제공합니다. 또한 1970년 1월 1일과 지정된 시간 사이에 추가된 윤초 수를 제공합니다. 윤초 삽입은 IERS(International Earth Rotation and Reference Systems Service)가 불규칙하고 점차 느려지는 지구의 회전을 측정하여 추적되는 원자 시간과 시간의 차이를 고려하여 윤초가 추가될 것이라고 선언할 때 발생합니다(61초).
구문
template<class Duration>
leap_second_info
get_leap_second_info(const utc_time<Duration>& ut); // C++20
매개 변수
ut
for를 가져올 원본 utc_time
입니다 leap_second_info
.
반환 값
leap_second_info
양수 윤초 삽입 중에 해당 멤버 is_leap_second
true
가 있는 경우 ut
를 반환하고, false
그렇지 않으면 반환합니다. 멤버는 elapsed
Epoch 날짜 1970-01-01
와 ut
. 이 true
경우 is_leap_second
참조하는 윤초 ut
가 합계에 elapsed
포함됩니다.
get_tzdb
프로그램 전체 표준 시간대 데이터베이스 목록의 첫 번째 항목을 가져옵니다.
구문
const tzdb& get_tzdb(); // C++20
반환 값
를 호출하는 것처럼 첫 번째 tzdb
개체에 대한 참조를 반환합니다 get_tzdb_list().front()
. 표준 시간대 데이터베이스에 대한 첫 번째 참조이고 표준 시간대 데이터베이스를 초기화할 수 없는 경우 예외가 throw runtime_error
됩니다.
설명
아직 get_tzdb
초기화되지 않은 경우 첫 번째 액세스 시 프로그램 전체 표준 시간대 데이터베이스를 초기화합니다. 초기화 시 데이터베이스는 초기화된 tzdb
단일 개체를 보유하는 데이터베이스입니다tzdb_list
.
get_tzdb_list
프로그램 전체의 싱글톤 표준 시간대 데이터베이스를 가져옵니다.
구문
tzdb_list& get_tzdb_list(); // C++20
반환 값
프로그램 전체 tzdb_list
개체에 대한 참조를 반환합니다. 유효한 tzdb_list
개체에 대한 참조를 runtime_error
반환할 수 없는 경우 예외를 throw합니다.
설명
아직 get_tzdb_list
초기화되지 않은 경우 첫 번째 액세스 시 프로그램 전체 표준 시간대 데이터베이스를 초기화합니다. 초기화 시 데이터베이스는 초기화된 tzdb
단일 개체를 보유하는 데이터베이스입니다tzdb_list
. 함수는 get_tzdb_list
스레드로부터 안전합니다.
is_am
지정된 시간이 하루 중 AM(ante-meridiem) 부분에 있는지 여부에 대한 조건자입니다.
구문
constexpr bool is_am(const hours& h) noexcept; // C++20
매개 변수
h
24시간 표기법의 원본 hours
표현입니다.
반환 값
0h <= h && h <= 11h
그렇지 않으면 false
반환합니다true
.
is_pm
지정된 시간이 하루 중 오후(오후 ) 이후 부분에 있는지 여부를 조건자입니다.
구문
constexpr bool is_pm(const hours& h) noexcept; // C++20
매개 변수
h
24시간 표기법의 원본 hours
표현입니다.
반환 값
12h <= h && h <= 23h
그렇지 않으면 false
반환합니다true
.
locate_zone
표준 시간대 이름으로 지정된 표준 시간대 개체를 가져옵니다.
구문
const time_zone* locate_zone(string_view tz_name); // C++20
매개 변수
tz_name
반환할 표준 시간대의 이름입니다.
반환 값
를 호출하는 것처럼 포인터 time_zone
를 반환합니다 get_tzdb().locate_zone(tz_name)
. 지정된 표준 시간대를 runtime_error
찾을 수 없거나 표준 시간대 데이터베이스에 대한 첫 번째 참조이고 표준 시간대 데이터베이스를 초기화할 수 없는 경우 예외를 throw합니다.
설명
아직 locate_zone
초기화되지 않은 경우 첫 번째 액세스 시 프로그램 전체 표준 시간대 데이터베이스를 초기화합니다. 초기화 시 데이터베이스는 초기화된 tzdb
단일 개체를 보유하는 데이터베이스입니다tzdb_list
.
make12
지정된 시간을 12시간 표기법으로 반환합니다.
구문
constexpr hours make12(const hours& h) noexcept; // C++20
매개 변수
h
24시간 표기법의 원본 hours
표현입니다.
반환 값
범위에 [1h, 12h]
해당하는 12시간을 h
반환합니다. 범위에 [0h, 23h]
없는 경우 h
반환 값이 지정되지 않습니다.
make24
지정된 시간을 24시간 표기법으로 반환합니다.
구문
constexpr hours make24(const hours& h, bool is_pm) noexcept; // C++20
매개 변수
h
12시간 표기법의 원본 hours
표현입니다.
is_pm
원본 hours
표현은 PM(if true
) 또는 AM(경우 false
)입니다.
반환 값
이 make24
false
경우 is_pm
AM 시간을 나타낸 것으로 가정하여 h
범위에 [0h, 11h]
해당하는 h
24시간을 반환합니다. 그렇지 않으면 오후 시간을 나타낸 것으로 가정하여 h
범위에 [12h, 23h]
해당하는 h
24시간을 반환합니다. 범위에 [1h, 12h]
없는 경우 h
반환 값이 지정되지 않습니다.
reload_tzdb
업데이트된 정보를 사용할 수 있는 경우 표준 시간대 데이터베이스를 다시 로드합니다.
구문
const tzdb& reload_tzdb();
반환 값
표준 시간대 데이터베이스를 업데이트한 후(있는 경우) reload_tzdb
호출을 통해 첫 번째 tzdb
개체에 대한 참조를 반환합니다 get_tzdb_list().front()
. 유효한 tzdb
개체에 대한 참조를 runtime_error
반환할 수 없는 경우 예외를 throw합니다.
설명
로컬 표준 시간대 데이터베이스는 프로그램에서 데이터베이스에 처음 액세스할 때 제공된 데이터베이스입니다(예: 호출)current_zone
. 프로그램이 실행되는 동안 구현은 표준 시간대 데이터베이스를 업데이트할 수 있습니다. 프로그램이 함수를 호출 reload_tzdb
하지 않는 한 업데이트는 프로그램에 영향을 주지 않습니다. 잠재적으로 업데이트될 수 있는 표준 시간대 데이터베이스를 원격 표준 시간대 데이터베이스라고 합니다.
이 함수는 reload_tzdb
로컬 표준 시간대 데이터베이스와 원격 표준 시간대 데이터베이스의 버전을 모두 확인합니다. 로컬 및 원격 데이터베이스의 버전이 동일한 경우 변경되지 않습니다. 그렇지 않으면 원격 데이터베이스가 액세스된 데이터베이스의 tzdb_list
맨 앞으로 푸시됩니다 get_tzdb_list
. 업데이트는 포인터, 참조 또는 반복기를 무효화하지 않습니다. 함수는 reload_tzdb
호출 get_tzdb_list().front()
에 대해 스레드로부터 안전합니다.get_tzdb_list().erase_after()
remote_version
최신 원격 데이터베이스 버전이 포함된 문자열을 가져옵니다.
구문
string remote_version();
반환 값
string
최신 원격 데이터베이스 버전이 포함된 값을 반환합니다.
round(duration)
지정된 duration
항목을 대상 형식에서 가장 가까운 표현 가능 duration
항목으로 반올림합니다.
구문
template<class ToDuration, class Rep, class Period>
constexpr ToDuration
round(const duration<Rep, Period>& d); // C++17
매개 변수
ToDuration
대상 duration
형식입니다. 위치 treat_as_floating_point_v<typename ToDuration::rep>
의 duration
특수화로 제한됩니다false
.
Rep
원본 duration
d
의 내부 표현 형식입니다.
Period
std::ratio
소스 Rep
형식에 대한 1초의 비율(즉, 초당 초Rep
)을 나타내는 형식입니다.
d
원본 duration
개체입니다.
반환 값
매개 변수에 가장 duration
가까운 표현 가능한 ToDuration
값을 반환 d
합니다. 연결은 짝수 값, 즉 여기서 t % 2 == 0
값 t
으로 이동합니다.
설명
round
은 형식이 인스턴스duration
이고 ToDuration
정수 표현이 ToDuration
없는 한 오버로드 확인에 참여하지 않습니다.
round(time_point)
대상 duration
에서 나타낼 수 있는 가장 가까운 시간 지점을 지정된 시간 지점에 반환합니다.
template<class ToDuration, class Clock, class Duration>
constexpr time_point<Clock, ToDuration>
round(const time_point<Clock, Duration>& tp);
매개 변수
ToDuration
대상 duration
형식입니다. 위치 treat_as_floating_point_v<typename ToDuration::rep>
의 duration
특수화로 제한됩니다false
.
Clock
결과의 공통 클록 형식 및 원본 매개 변수 tp
입니다.
Duration
의 형식입니다 duration
tp
.
tp
원본 time_point
개체입니다.
반환 값
를 사용하여 ToDuration
나타낼 수 있는 가장 가까운 시간 지점을 반환합니다 tp
. 연결은 짝수 값, 즉 여기서 t % 2 == 0
값 t
으로 이동합니다. 효과적으로, time_point<Clock, ToDuration>(round<ToDuration>(tp.time_since_epoch()));
.
설명
round
는 형식이 .의 duration
인스턴스가 아닌 한 ToDuration
오버로드 확인에 참여하지 않습니다.
time_point_cast
다른 duration
형식의 time_point
개체를 time_point
캐스팅합니다.
구문
template <class ToDuration, class Clock, class Duration>
time_point<Clock, ToDuration>
time_point_cast(const time_point<Clock, Duration>& tp); // C++11
매개 변수
ToDuration
대상 duration
형식입니다. 의 특수화 duration
로 제한됩니다.
Clock
결과의 공통 클록 형식 및 원본 매개 변수 tp
입니다.
Duration
의 형식입니다 duration
tp
.
tp
time_point
형식이 있는 개체로 캐스팅할 개체입니다ToDuration
.
반환 값
형식이 있는 time_point
개체를 반환합니다 ToDuration
. 효과적으로, time_point<Clock, ToDuration>(duration_cast<ToDuration>(t.time_since_epoch()));
.
설명
특수화duration
가 아닌 한 ToDuration
이 함수는 오버로드 확인에 참여하지 않습니다.
참고 항목
<chrono>
chrono
리터럴
chrono
연산자
duration
클래스
time_point
클래스
time_zone
클래스