全球定位系統(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 類別
標頭檔參考