<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_typedurationtime_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_timesys_time제공합니다.
sys_info 로 변환한 결과에 대한 표준 시간대 정보에 대한 하위 수준 인터페이스를 sys_timelocal_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) 개체의 ceilduration 형식을 지정한 형식으로 반환합니다.
ceil(time_point) 개체의 ceiltime_point 형식을 지정한 형식으로 반환합니다.
clock_cast time_point 클록에서 다른 클록에 해당하는 time_point 시계로 변환합니다.
duration_cast 지정된 형식으로 duration 개체를 캐스팅합니다.
floor(duration) 개체의 floorduration 형식을 지정한 형식으로 반환합니다.
floor(time_point) 개체의 floortime_point 형식을 지정한 형식으로 반환합니다.
from_stream() 지정된 형식을 사용하여 입력 스트림을 시간 또는 간격 형식(std::chrono예: day, monthweekday, 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_pointfile_clock나타냅니다. 를 지정합니다 Duration. 예를 들면 다음과 같습니다 file_time<seconds> ft;.
gps_seconds 와 연결된 gps_clocka로 표현되는 time_point 초의 수에 대한 gps_time<seconds>; 동의어입니다.
gps_time time_point<gps_clock, Duration>의 동의어입니다. 에 대한 a time_pointgps_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_timetime_zone 경우에만 UTC 시간 또는 특정 표준 시간대의 시간으로 변환할 수 있는 특정 시점을 얻습니다.
sys_days sys_time<days>의 동의어입니다. system_clock epoch 이후의 일 수로, 연결된 system_clocka 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_pointtai_clock나타냅니다.
utc_seconds 의 동의어 utc_time<seconds>;
utc_time time_point<utc_clock, Duration>의 동의어입니다. Duration예를 들어 utc_time<seconds> ut;. 에 대한 a time_pointutc_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;

참고 항목

헤더 파일 참조