Share via


<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
원본 durationd의 내부 표현 형식입니다.

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
원본 durationd의 내부 표현 형식입니다.

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
의 형식입니다 durationtp.

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 file_clock/a0>로 추론되고 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
원본 durationd의 내부 표현 형식입니다.

Period
std::ratio 소스 Rep 형식에 대한 1초의 비율(즉, 초당 초Rep)을 나타내는 형식입니다.

d
대상 duration 형식으로 캐스팅할 원본 duration 개체입니다.

반환 값

를 나타내는 형식 ToDuration 의 개체입니다 durationd. 대상 형식에 맞게 필요한 경우 잘립니다. 부동 소수점을 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
원본 durationd의 내부 표현 형식입니다.

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
의 형식입니다 durationtp.

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_dayweekday, 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에 대한 형식 wstringchar32_tcharu32stringwchar_tchar16_tu16string 정의 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 1001입니다. 결과가 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구현은 현재 strftimeO일치하지만(문자 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_secondtrue 가 있는 경우 ut 를 반환하고, false그렇지 않으면 반환합니다. 멤버는 elapsed Epoch 날짜 1970-01-01ut. 이 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)입니다.

반환 값

make24false경우 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
원본 durationd의 내부 표현 형식입니다.

Period
std::ratio 소스 Rep 형식에 대한 1초의 비율(즉, 초당 초Rep)을 나타내는 형식입니다.

d
원본 duration 개체입니다.

반환 값

매개 변수에 가장 duration 가까운 표현 가능한 ToDuration 값을 반환 d합니다. 연결은 짝수 값, 즉 여기서 t % 2 == 0t 으로 이동합니다.

설명

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
의 형식입니다 durationtp.

tp
원본 time_point 개체입니다.

반환 값

를 사용하여 ToDuration 나타낼 수 있는 가장 가까운 시간 지점을 반환합니다 tp. 연결은 짝수 값, 즉 여기서 t % 2 == 0t 으로 이동합니다. 효과적으로, 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
의 형식입니다 durationtp.

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 클래스