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_time 를 tai_time 로 변환합니다. |
now |
정적. 현재 국제 원자 시간을 반환합니다. |
to_utc |
정적. 으로 변환합니다 tai_time utc_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_point 를 tai_clock 나타냅니다. 를 지정합니다 Duration . 에 정의됨 std::chrono |
tai_seconds |
와 연결된 tai_clock a로 표현되는 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_time
t
을 나타내는 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_time
t
을 나타내는 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
클래스
헤더 파일 참조