다음을 통해 공유


tai_clock 클래스

이 시계는 1958년 1월 1일 목요일 00:00:00 이후 국제 원자 시간을 보고합니다. 이 시계는 윤초를 고려하지 않습니다.

구문

class tai_clock; // C++20

설명

이 시계는 국제 원자 시간 (TAI, 프랑스 온도 아토미크 국제에서)를보고합니다. 국제 원자 시간은 많은 원자 시계의 가중 평균을 사용하여 시간을 추적합니다.

TAI 시계에 의해 유지되는 시간은 UTC 시간과 다릅니다. 차이점은 UTC 시간과 UT1(태양 시간)의 차이를 서로의 +- 0.9초 이내로 유지하기 위해 때때로 윤초가 UTC 시간에 추가된다는 것입니다. 원자시계에 의해 유지되는 시간과 지구의 회전을 측정하여 유지되는 시간 사이에는 점차 불일치가 발생합니다. 지구의 회전 속도가 불규칙하기 때문에 불일치가 발생합니다. 그것은 1.5 년마다 약 1 초씩 시간이 지남에 따라 느려지고 때로는 속도를 높일 수 있다고 생각했습니다. TAI 시간은 이러한 불일치를 추적하지 않습니다. 이 글을 쓰는 시점에서 TAI 시간은 UTC 시간보다 37초 앞서 있습니다. 이는 1972년 초에 10초의 초기 차이와 1972년 이후 삽입된 윤초 때문입니다.

시계의 Epoch 또는 시간 측정을 시작하는 날짜 및 시간은 다음과 같습니다 1958-01-01 00:00:00.

멤버

속성 설명
from_utc 정적. utc_timetai_time로 변환합니다.
now 정적. 현재 국제 원자 시간을 반환합니다.
to_utc 정적. 으로 변환합니다 tai_timeutc_time.

비멤버

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

편의 유형 별칭

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

관련

이름 설명
tai_time template <class Duration> using tai_time = time_point<tai_clock, Duration>의 동의어입니다. 에 대한 a time_pointtai_clock나타냅니다. 를 지정합니다 Duration. 에 정의됨 std::chrono
tai_seconds 와 연결된 tai_clocka로 표현되는 time_point 초의 수에 대한 using tai_seconds = tai_time<seconds> 동의어입니다. 에 정의됨 std::chrono

공용 상수

이름 설명
tai_clock::is_steady constant 클록 유형이 안정적인지 여부를 나타냅니다. 값은 .입니다 false.

요구 사항

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

네임스페이스:std::chrono

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

from_utc

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

template <class Duration>
static tai_time<common_type_t<Duration, seconds>>
from_utc(const utc_time<Duration>& t) noexcept;

매개 변수

t
변환할 utc_time입니다.

반환 값

해당하는 utc_timet을 나타내는 A tai_time 입니다. UTC 클록의 epoch 이후의 시간을 사용하고 위치를 추가하여 378691210s 계산됩니다. 378691210s == sys_days{1970y/January/1} - sys_days{1958y/January/1} + 10s

to_utc

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

template<class Duration>
static utc_time<common_type_t<Duration, seconds>>
to_utc(const tai_time<Duration>& t) noexcept;

매개 변수

t
변환할 tai_time입니다.

Return Value

해당하는 tai_timet을 나타내는 A utc_time 입니다. 위치로 utc_time<common_type_t<Duration, seconds>>{t.time_since_epoch()} - 378691210s 계산됩니다. 378691210s == sys_days{1970y/January/1} - sys_days{1958y/January/1} + 10s

is_steady

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

static const bool is_steady = false;

now

현재 TAI 시간을 반환하는 정적 메서드입니다.

static time_point now() noexcept;

Return Value

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

참고 항목

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