다음을 통해 공유


utc_clock 클래스

GMT(그리니치 표준시) 또는 줄루시라고도 하는 UTC(협정 세계시)의 시계입니다. 현지 시간은 표준 시간대에 따라 UTC 시간부터 조정됩니다.

구문

class utc_clock; // C++20

설명

이 시계는 1970년 1월 1일 목요일 00:00:00 UTC 이후의 시간을 측정합니다. 이 시계는 윤초를 차지하고 전 세계 시민 시간의 기초입니다.

UTC 시간 비율은 원자시계를 사용하여 시간을 추적하는 TAI(International Atomic Time)를 기반으로 합니다. 그러나 UTC 시간과 UT1(태양 시간)의 차이를 +-0.9초 내에 유지하기 위해 윤초가 UTC 시간에 추가되는 경우도 있습니다.

원자 시계에 의해 유지되는 시간과 지구의 회전을 추적하여 유지되는 시간 사이에는 차이가 있습니다. 지구의 회전 속도가 불규칙하고 일반적으로 1.5년마다 시간이 지남에 따라 약 1초씩 느려지기 때문입니다(때로는 지구의 회전 속도가 증가하지만). 윤초 조정은 UTC 추적 시간을 하루 평균 길이의 1초 이내로 유지합니다.

이 글을 쓰는 시점에서 1972년에 윤초 삽입 연습이 시작된 이래로 27개의 윤초가 추가되었습니다. IERS(International Earth Rotation and Reference Systems Service)는 윤초가 추가될 시기를 결정합니다. 윤초를 추가하는 것을 "윤초 삽입"이라고 합니다. 윤초가 삽입되면 시간이 자정에 가까워지면 23시간 59분 59초에서 23시간 59분 60초(삽입된 윤초)에서 0시간 0분 0초(자정)로 진행됩니다. 지금까지 윤초는 6월 30일 또는 12월 31일에 추가되었습니다.

UTC 시간은 정의에 따라 TAI(원자 시간) 뒤에 10초 뒤에 시작됩니다. 1972년에 10초가 해당 시점까지 누적된 윤초를 수용하기 위해 TAI 시간에 추가되었습니다. 그 이후 다른 27 윤초의 삽입을 감안할 때, UTC 시간은 현재 TAI (원자 시계) 시간 뒤에 37 초입니다.

멤버

속성 설명
from_sys 정적. sys_timeutc_time로 변환합니다.
now 정적. 현재 시간을 반환합니다.
to_sys 정적. utc_timesys_time로 변환합니다.

비멤버

이름 설명
from_stream 지정된 형식을 utc_time 사용하여 지정된 스트림에서 구문 분석합니다.
get_leap_second_info 제공된 시간이 윤초가 삽입된 시간을 지정하는지 여부를 나타내는 leap_second_info 가져옵니다. 또한 1970년 1월 1일과 지정된 기간 사이의 모든 윤초의 합계를 포함합니다.
operator<< 지정된 스트림에 출력 utc_time 합니다.

편의 유형 별칭

이름 설명
utc_clock::duration Microsoft의 구현에서는 동의어 duration<system_clock::rep, system_clock::period>입니다. 100나노초 단위로 측정된 기간을 나타냅니다.
utc_clock::period Microsoft의 구현에서는 이를 동의어로 정의합니다 system_clock::period. 기간의 각 틱 사이의 시간(초)(100나노초)을 나타냅니다.
utc_clock::rep 이 클록의 정수 단위를 나타내는 데 사용되는 형식(long long)의 동의어입니다 utc_clock::duration.
utc_clock::time_point time_point<utc_clock>의 동의어입니다. 이 클록의 경우를 time_point 나타내는 데 사용됩니다.

관련

이름 설명
utc_seconds 의 동의어 using utc_seconds = utc_time<seconds>;
utc_time 에 대한 template<class Duration> using utc_time = time_point<utc_clock, Duration>;A를 time_point 나타내는 동의어입니다 utc_clock. 기간을 지정합니다. 에 정의됨 std::chrono

공용 상수

이름 설명
[utc_clock::is_steady constant](#is_steady_constant) 클록 유형이 안정적인지 여부를 나타냅니다. 값은 .입니다 false.

요구 사항

헤더:<chrono> (C++20 이후)

네임스페이스:std::chrono

컴파일러 옵션:/std:c++latest

from_sys

를 변환하는 sys_time 정적 메서드입니다 utc_time.

template<class Duration>
static utc_time<common_type_t<Duration, seconds>>
from_sys(const sys_time<Duration>& t);

매개 변수

t
변환할 sys_time입니다.

반환 값

utc_time 가장 가까운 근사값을 sys_timet나타내는 시간으로 설정된 것입니다. 직접 매핑이 없으면 윤초 삽입 중 time_point 윤초 삽입 전의 sys_time 마지막 표시 가능 값이 반환됩니다.

to_sys

를 변환하는 utc_time 정적 메서드입니다 sys_time.

template<class Duration>
static sys_time<common_type_t<Duration, seconds>>
to_sys(const utc_time<Duration>& t);

매개 변수

t
변환할 utc_time입니다.

Return Value

sys_time 해당 시점으로 설정된 값입니다t. 직접 매핑이 없는 경우 윤초가 삽입된 시점을 나타내는 경우 t 윤초를 삽입하기 전의 마지막 표시 가능한 값입니다. 윤초를 추가하는 것을 "윤초 삽입"이라고 합니다. 윤초가 삽입되면 자정에 가까워지는 시간은 23시간 59분 59초에서 23시간 59분 60초(삽입된 윤초)에서 0시간 0분 0초(자정)로 진행됩니다. 이전에는 윤초가 6월 30일 또는 12월 31일에 추가되었습니다.

is_steady

시간 형식이 지속인지를 지정하는 정적 값입니다. Microsoft의 구현에서는 다음과 같이 is_steady_constantfalse표시됩니다. utc_clock 안정적이지 않기 때문에 이 클록을 사용하여 이벤트 전의 시간, 이벤트 이후의 시간을 안정적으로 사용하고, 해당 시간 동안 클록이 조정될 수 있으므로 이벤트 기간을 가져오기 위해 이 클록을 뺄 수 없습니다.

static const bool is_steady = false;

now

현재 UTC 시간을 반환하는 정적 메서드입니다. 반환된 시간에는 윤초가 포함됩니다.

static time_point now() noexcept;

Return Value

time_point 현재 시간을 나타내는 개체입니다. 반환된 시간 포인트는 사실상 입니다 from_sys(system_clock::now()).

참고 항목

<chrono>
file_clock class
gps_clock class
high_resolution_clock
local_t 구조체
steady_clock 구조체
system_clock 구조체
tai_clock 클래스
헤더 파일 참조