tai_clock
類別
這個時鐘報告自1958年1月1日星期四00:00:00以來的國際原子時間。 此時鐘不會考慮閏秒。
語法
class tai_clock; // C++20
備註
這時鍾報導了國際原子時(TAI,來自法國 天體原子國際)。 國際原子時間使用許多不可部分完成時鐘的加權平均值來追蹤時間。
TAI 時鐘所保留的時間與 UTC 時間不同。 差異在於,閏秒偶爾會新增至 UTC 時間,以在 +- 0.9 秒內保持 UTC 時間與 UT1(太陽時間)之間的差異。 測量地球旋轉所保留的時間之間逐漸產生差異。 因地球的旋轉速度不規則而產生差異。 它每隔1.5年減慢一秒左右,認為它有時也會加速。 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> 的同義字。 表示 time_point 的 tai_clock 。 您可以指定 Duration 。 在中定義 std::chrono |
tai_seconds |
與相關聯tai_clock 之 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
。
傳回值
tai_time
,表示對等utc_time
的 t
。 其計算方式是採用UTC時鐘的Epoch之後所花費的時間,並新增 378691210s
where 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
。
傳回值
utc_time
,表示對等tai_time
的 t
。 其計算方式為 utc_time<common_type_t<Duration, seconds>>{t.time_since_epoch()} - 378691210s
where 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;
傳回值
time_point
表示目前時間的物件。 傳回的時間點實際上是 from_utc(utc_clock::now())
。
另請參閱
<chrono>
file_clock class
high_resolution_clock
local_t
結構
steady_clock
結構
system_clock
結構
utc_clock
類別
標頭檔參考