<chrono>
표준 헤더 <chrono>
를 포함하여 시간 기간 및 시간 인스턴트를 나타내고 조작하는 클래스 및 함수를 정의합니다.
Visual Studio 2015부터 정수 및 단조도에 대한 C++ 표준 요구 사항을 충족하도록 구현 steady_clock
이 변경되었습니다.
steady_clock
은 이제를 기반으로 QueryPerformanceCounter()
high_resolution_clock
는 이제 Microsoft C++ 구현에 대한steady_clock
typedef이며 이제steady_clock::time_point
forchrono::time_point<steady_clock>
입니다typedef
. 그러나 다른 구현의 경우 반드시 그렇지는 않습니다.
요구 사항
머리글: <chrono>
지역 의회는 때때로 표준 시간대를 변경하고, 국제 표준 기관은 새로운 윤초를 고려해야 할 때를 지정합니다. 이러한 변경 내용의 데이터베이스가 Windows 10에 추가되었습니다. 특별한 사항
기능 | 클라이언트 버전 | 서버 버전 |
---|---|---|
윤초 데이터베이스 업데이트 | Windows 10, 버전 1809 이상 | Windows Server 2019 이상 |
표준 시간대 지원 | Windows 10 버전 1903/19H1 이상 | Windows Server 2022 이상 |
이전 버전의 Windows에서 표준 시간대 기능을 사용하면 런타임 오류가 발생합니다.
네임스페이스: std
계산 형식
속성 | 설명 |
---|---|
common_type 구조체 |
및 인스턴스화를 위한 클래스 템플릿 common_type 의 duration time_point 특수화에 대해 설명합니다. |
day 클래스 |
월의 날입니다. 예를 들어 해당 월의 25일입니다. |
duration 클래스 |
시간 간격입니다. |
duration_values 구조체 |
duration 템플릿 매개 변수 Rep 에 대한 특정 값을 제공합니다. |
hh_mm_ss 클래스 |
시간 duration :분:초로 분할합니다. |
last_spec |
월의 마지막 날짜(2020년 2월 마지막 화요일) 또는 한 달의 마지막 날(2019년 4월 마지막 날)과 같은 월의 마지막 항목을 나타내는 데 사용됩니다. |
leap_second 클래스 |
삽입된 윤초의 날짜 및 값입니다. |
leap_second_info 구조체 |
get_leap_second_info 에서 반환한 데이터입니다. |
month 클래스 |
1년 중 한 달입니다. 예를 들어 7월입니다. |
month_day 클래스 |
특정 월의 특정 날짜입니다. 예를 들어 7월 30일입니다. |
month_day_last 클래스 |
한 달의 마지막 날입니다. |
month_weekday 클래스 |
특정 월의 n번째 평일입니다. |
month_weekday_last 클래스 |
특정 월의 n번째 평일입니다. |
time_point 클래스 |
지정 시간입니다. |
weekday 클래스 |
요일. |
weekday_last 클래스 |
한 달의 마지막 평일입니다. |
weekday_indexed 클래스 |
요일을 해당 월의 요일을 나타내는 인덱스와 결합합니다. |
year 클래스 |
그레고리오력의 1년. |
year_month 클래스 |
1년 및 1개월입니다. 날짜가 지정되지 않았습니다. |
year_month_day 클래스 |
1년, 월 및 일 |
year_month_day_last 클래스 |
특정 월 및 연도의 마지막 날입니다. |
year_month_weekday 클래스 |
해당 월의 특정 연도, 월 및 n번째 평일입니다. |
year_month_weekday_last 클래스 |
특정 연도, 월 및 월의 마지막 요일입니다. |
시계
속성 | 설명 |
---|---|
file_clock 클래스 |
파일 타임스탬프를 표현하는 데 사용되는 클록 std::filesystem::file_time_type 의 별칭입니다. |
gps_clock 클래스 |
GPS 시간을 유지하는 시계입니다. 1980년 1월 첫 번째 일요일부터 00:00:00 UTC부터 시작하는 시간을 측정합니다. |
high_resolution_clock 구조체 |
나노초 틱 마침표가 있는 시계입니다. |
local_t 구조체 |
현지 시간을 나타내 time_point 기 위해 템플릿의 time_point 인수로 사용되는 의사 시계입니다. |
steady_clock 구조체 |
시계입니다 steady . 이 시계는 시간 간격을 측정하는 데 선호됩니다. |
system_clock 구조체 |
시스템의 실시간 클록을 기반으로 하는 시계입니다. |
tai_clock 클래스 |
1958년 1월 1일 목요일부터 00:00:00에 국제 원자력 시간(TAI)을 측정합니다. 이 시계는 윤초를 고려하지 않습니다. |
utc_clock 클래스 |
1970년 1월 1일 목요일 00:00:00 UTC 이후의 시간을 측정합니다. 이 시계는 윤초를 차지하며 전 세계에서 사용되는 시간 표준입니다. |
표준 시간대
속성 | 설명 |
---|---|
choose |
에 대한 모호한 변환 local_time 을 확인하는 방법을 지정하는 열거형입니다 sys_time . |
local_info |
로 변환한 결과에 대한 표준 시간대 정보에 대한 하위 수준 인터페이스를 local_time sys_time 제공합니다. |
sys_info |
로 변환한 결과에 대한 표준 시간대 정보에 대한 하위 수준 인터페이스를 sys_time local_time 제공합니다. |
time_zone 클래스 |
특정 지역에 대한 모든 표준 시간대 전환 |
time_zone_link 클래스 |
의 대체 이름입니다 time_zone . |
tzdb 구조체 |
표준 시간대 데이터베이스의 복사본을 나타냅니다. |
tzdb_list 클래스 |
표준 시간대 데이터베이스의 단일 목록입니다. |
zoned_time 클래스 |
지정된 정밀도를 가진 a time_zone 와 a time_point 의 페어링입니다. |
zoned_traits 구조체 |
다른 기본 표준 시간대 zoned_time 를 연결하고 필요에 따라 사용자 지정 이름을 해당 기본 표준 시간대에 매핑하는 데 사용됩니다. |
예외
속성 | 설명 |
---|---|
ambiguous_local_time |
a로 local_time 변환되고 결과가 모호할 sys_time 때 오류가 발생합니다. |
nonexistent_local_time |
A로 local_time 변환 sys_time 되고 결과가 존재하지 않는 시간일 때 오류가 발생합니다. |
함수
속성 | 설명 |
---|---|
ceil(duration) |
개체의 ceil duration 형식을 지정한 형식으로 반환합니다. |
ceil(time_point) |
개체의 ceil time_point 형식을 지정한 형식으로 반환합니다. |
clock_cast |
한 time_point 클록에서 다른 클록에 해당하는 time_point 시계로 변환합니다. |
duration_cast |
지정된 형식으로 duration 개체를 캐스팅합니다. |
floor(duration) |
개체의 floor duration 형식을 지정한 형식으로 반환합니다. |
floor(time_point) |
개체의 floor time_point 형식을 지정한 형식으로 반환합니다. |
from_stream() |
지정된 형식을 사용하여 입력 스트림을 시간 또는 간격 형식(std::chrono 예: day , month weekday , year 등) 중 하나로 구문 분석합니다. |
get_leap_second_info |
구조체를 leap_second_info 가져옵니다. |
is_am |
개체가 hours AM인지 여부입니다. |
is_pm |
개체가 hours PM인지 여부입니다. |
locate_zone |
지정된 표준 시간대를 가져옵니다. |
make12 |
hours 12시간 형식을 반환합니다. |
make24 |
hours 24시간 형식을 반환합니다. |
round(duration) |
duration 지정된 형식으로 반올림된 개체를 반환합니다. |
round(time_point) |
time_point 지정된 형식으로 반올림된 개체를 반환합니다. |
time_point_cast |
지정된 형식으로 time_point 개체를 캐스팅합니다. |
표준 시간대 관련
속성 | 설명 |
---|---|
current_zone |
현재 표준 시간대를 가져옵니다. |
get_tzdb |
첫 번째 표준 시간대 데이터베이스 항목을 가져옵니다. |
get_tzdb_list |
표준 시간대 데이터베이스 항목 목록을 가져옵니다. |
reload_tzdb |
업데이트된 표준 시간대 데이터베이스 항목을 가져옵니다. |
remote_version |
업데이트된 표준 시간대 데이터베이스 항목을 확인합니다. |
연산자
속성 | 설명 |
---|---|
operator- |
다양한 <chrono> 개체를 빼거나 부정합니다. |
operator!= |
다양한 <chrono> 개체와 함께 사용되는 같지 않음 연산자입니다. |
operator modulo |
duration 개체에 대한 모듈로 연산용 연산자입니다. |
operator* |
duration 개체에 대한 곱하기 연산자입니다. |
operator/ |
duration 개체에 대한 나누기 연산자입니다. |
operator/ |
달력 날짜를 만드는 구문을 제공합니다. |
operator+ |
다양한 <chrono> 개체에 추가합니다. |
operator< |
다양한 <chrono> 개체가 다른 개체보다 작은지 여부를 확인합니다. |
operator<= |
다양한 <chrono> 개체가 다른 개체보다 작거나 같은지 여부를 확인합니다. |
operator== |
다양한 <chrono> 개체가 서로 같은지 여부를 결정합니다. |
operator> |
다양한 <chrono> 개체가 다른 개체보다 큰지 여부를 확인합니다. |
operator>= |
다양한 <chrono> 개체가 다른 개체보다 크거나 같은지 여부를 결정합니다. |
Typedef
다음 typedefs에서 사용되는 비율 형식에 대한 자세한 내용은 을 참조하세요 <ratio>
.
편의 duration
유형
속성 | 설명 |
---|---|
typedef duration<long long, nano> nanoseconds; |
틱 기간이 10억 번째(1/1,000,000,000)인 형식의 동의어 duration 입니다. |
typedef duration<long long, micro> microseconds; |
틱 기간이 100만 번째(1/1,000,000)인 형식의 동의어 duration 입니다. |
typedef duration<long long, milli> milliseconds; |
틱 기간이 1/1,000초인 형식의 동의어 duration 입니다. |
typedef duration<long long> seconds; |
틱 기간이 1초인 duration 형식의 동의어입니다. |
typedef duration<int, ratio<60>> minutes; |
틱 기간이 1분인 duration 형식의 동의어입니다. |
typedef duration<int, ratio<3600>> hours; |
틱 기간이 1시간인 duration 형식의 동의어입니다. |
편의 time_point
유형
속성 | 설명 |
---|---|
file_time |
time_point<file_clock, Duration> 의 동의어입니다. 에 대한 a time_point 를 file_clock 나타냅니다. 를 지정합니다 Duration . 예를 들면 다음과 같습니다 file_time<seconds> ft; . |
gps_seconds |
와 연결된 gps_clock a로 표현되는 time_point 초의 수에 대한 gps_time<seconds>; 동의어입니다. |
gps_time |
time_point<gps_clock, Duration> 의 동의어입니다. 에 대한 a time_point 를 gps_clock 나타냅니다. 를 지정합니다 Duration . 예를 들면 다음과 같습니다 gps_time<milliseconds> gps; . |
local_days |
local_time<days> 의 동의어입니다. 표준 시간대와 연결되지 않은 것으로 표시되는 time_point 일 수입니다. |
local_seconds |
local_time<seconds> 의 동의어입니다. |
local_time |
time_point<local_t, Duration> 의 동의어입니다. time_point 아직 표준 시간대와 연결되지 않은 현지 시간을 나타냅니다. 를 지정합니다 Duration . 예를 들면 다음과 같습니다 local_time<seconds> lt; . A local_time 는 어딘가에 현지 시간입니다. 컴퓨터 시계의 현재 현지 시간이 아닙니다. 와 페어링하는 local_time time_zone 경우에만 UTC 시간 또는 특정 표준 시간대의 시간으로 변환할 수 있는 특정 시점을 얻습니다. |
sys_days |
sys_time<days> 의 동의어입니다. system_clock epoch 이후의 일 수로, 연결된 system_clock a time_point 로 표시됩니다. |
sys_seconds |
sys_time<seconds> 의 동의어입니다. 에 연결된 system_clock 것으로 표시된 time_point (1970년 1월 1일 00:00:00 UTC) 이후 system_clock 윤초가 아닌 시간(초)의 수입니다. |
sys_time |
time_point<system_clock, Duration> 의 동의어입니다. 를 지정합니다 Duration . 예를 들면 다음과 같습니다 sys_time<seconds> st; . 에서 반환system_clock::now() 된 을 time_point 나타냅니다. UTC 시간과 거의 유사하게 Unix 시간을 나타냅니다. |
tai_seconds |
tai_time<seconds> 의 동의어입니다. 와 연결된 tai_clock 것으로 time_point 표시되는 초 수입니다. |
tai_time |
time_point<tai_clock, Duration> 의 동의어입니다. Duration 예를 들어 tai_time<seconds> tt; . 에 대한 a time_point 를 tai_clock 나타냅니다. |
utc_seconds |
의 동의어 utc_time<seconds>; |
utc_time |
time_point<utc_clock, Duration> 의 동의어입니다. Duration 예를 들어 utc_time<seconds> ut; . 에 대한 a time_point 를 utc_clock 나타냅니다. |
형식 특성
속성 | 설명 |
---|---|
clock_time_conversion |
한 클록에서 다른 클록으로 time_point 변환하는 방법을 지정하는 특성입니다. |
is_clock | 형식이 시계인지 확인합니다. |
treat_as_floating_point | 틱 기간이 다른 다른 duration 값으로 변환할 수 있는지 duration 확인합니다. |
리터럴
(C++11) 헤더는 <chrono>
코드의 편의성, 형식 안전성 및 유지 관리에 사용할 수 있는 다음과 같은 사용자 정의 리터럴 을 정의합니다. 이러한 리터럴은 인라인 네임스페이 literals::chrono_literals
스에 정의되며 범위에 있을 때 std::chrono
범위에 있습니다.
선언 | 설명 |
---|---|
hours operator "" h(unsigned long long Val) |
정수 계열 값으로 시간을 지정합니다. |
duration<double, ratio<3600>> operator "" h(long double Val) |
부동 소수점 값으로 시간을 지정합니다. |
minutes (operator "" min)(unsigned long long Val) |
정수 계열 값으로 분을 지정합니다. |
duration<double, ratio<60>> (operator "" min)( long double Val) |
부동 소수점 값으로 분을 지정합니다. |
seconds operator "" s(unsigned long long Val) |
정수 계열 값으로 분을 지정합니다. |
duration<double> operator "" s(long double Val) |
부동 소수점 값으로 초를 지정합니다. |
milliseconds operator "" ms(unsigned long long Val) |
정수 계열 값으로 밀리초를 지정합니다. |
duration<double, milli> operator "" ms(long double Val) |
부동 소수점 값으로 밀리초를 지정합니다. |
microseconds operator "" us(unsigned long long Val) |
정수 계열 값으로 마이크로초를 지정합니다. |
duration<double, micro> operator "" us(long double Val) |
부동 소수점 값으로 마이크로초를 지정합니다. |
nanoseconds operator "" ns(unsigned long long Val) |
정수 계열 값으로 나노초를 지정합니다. |
duration<double, nano> operator "" ns(long double Val) |
부동 소수점 값으로 나노초를 지정합니다. |
다음 예제에서는 리터럴을 사용하는 <chrono>
방법을 보여 줍니다.
constexpr auto day = 24h;
constexpr auto week = 24h* 7;
constexpr auto my_duration_unit = 108ms;