gps_clock
類別
全球定位系統(GPS)時間的時鐘。
語法
class gps_clock; // C++20
備註
此時鐘會測量自 1980 年 1 月 6 日星期日 00:00:00 UTC 起算的時間。
此時鐘不會考慮閏秒。 每當將閏秒新增至 UTC 時間時,UTC 就會落後 GPS 時間另一秒。
GPS 時間落後 TAI 時間 19 秒,因為 1972 年 TAI 時間增加了 10 秒,以計算累積到該點的閏秒,1970 年至 1980 年間又增加了 9 個躍秒。
成員
名稱 | 描述 |
---|---|
from_utc |
靜態。 將 utc_time 轉換成 gps_time 。 |
now |
靜態。 傳回 GPS 目前的時間。 |
to_utc |
靜態。 將 gps_time 轉換成 utc_time 。 |
非成員
名稱 | 描述 |
---|---|
from_stream |
gps_time 使用指定的格式,從指定的資料串流剖析 。 |
operator<< |
gps_time 將 輸出至指定的數據流。 |
便利類型別名
名稱 | 描述 |
---|---|
gps_clock::duration |
在 Microsoft 的實作中,它是 的 duration<long long, ratio<1, 10'000'000> 同義字。 它代表時間的持續時間,以100奈秒為單位來測量。 |
gps_clock::period |
在 Microsoft 的實作中,它是 的 ratio<1, 10'000'000> 同義字。 它代表持續時間中每個時鐘刻度之間的秒數(100 奈秒)之間的時間。 |
gps_clock::rep |
型別 (long long ) 的同義字,用來表示這個時鐘中整數單位。gps_clock::duration |
gps_clock::time_point |
time_point<gps_clock> 的同義字。 用來表示 time_point 這個時鐘的 。 |
相關
名稱 | 描述 |
---|---|
gps_time |
template <class Duration> using gps_time = time_point<gps_clock, Duration> 的同義字。 用來表示 time_point 的 gps_clock 。 您可以指定 Duration 。 在中定義 std::chrono |
gps_seconds |
與相關聯gps_clock 之 time_point 的秒數同義using gps_seconds = gps_time<seconds>; 字。 在中定義 std::chrono |
公用常數
名稱 | 描述 |
---|---|
gps_clock::is_steady 不斷 |
指出時鐘類型是否穩定。 其值為 false 。 |
需求
標頭: <chrono>
(自C++20起)
命名空間:std::chrono
編譯程序選項: /std:c++latest
from_utc
將轉換成 utc_time
的 gps_time
靜態方法。
template<class Duration>
static gps_time<common_type_t<Duration, seconds>>
from_utc(const utc_time<Duration>& t) noexcept;
參數
t
要進行轉換的 utc_time
。
傳回值
gps_time
設定為 與 utc_time
t
相同的時間點。 其會計算為 gps_time<common_type_t<Duration, seconds>>{t.time_since_epoch()} - 315964809s
其中 315964809s == sys_days{1980y/January/Sunday[1]} - sys_days{1970y/January/1} + 9s
。 這是 epoch 與 gps_clock
epoch 之間的utc_clock
秒數。
to_utc
將轉換成 gps_time
的 utc_time
靜態方法。
template<class Duration>
static utc_time<common_type_t<Duration, seconds>>
to_utc(const gps_time<Duration>& t) noexcept;
參數
t
要進行轉換的 gps_time
。
傳回值
utc_time
設定為 與gps_time
相同的時間點。 其會計算為 gps_time<common_type_t<Duration, seconds>>{t.time_since_epoch()} + 315964809s
其中 315964809s == sys_days{1980y/January/Sunday[1]} - sys_days{1970y/January/1} + 9s
。 這是的 Epoch utc_clock
與 gps_clock
之間的秒數。
is_steady
指定計時類型是否具「穩定性」。 在 Microsoft 的實作中, is_steady_constant
一律 false
為 。 gps_clock
由於 不穩定,因此您無法可靠地使用此時鐘在事件之前、事件之後的時間,並減去它們以取得事件的持續時間,因為時鐘可能會在該時間期間調整。
static const bool is_steady = system_clock::is_steady; // system_clock::is_steady equals false
now
傳回目前 GPS 時間的靜態方法。
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
結構
tai_clock
類別
標頭檔參考