共用方式為


utc_clock 類別

國際標準時間(UTC)的時鐘,有時被稱為格林威治平均時間(GMT)或祖魯時間。 當地時間會根據您的時區從 UTC 時間調整。

語法

class utc_clock; // C++20

備註

此時鐘會測量自 1970 年 1 月 1 日星期四 00:00:00 UTC 以來的時間。 這個時鐘占了閏秒,是世界各地民用時間的基礎。

UTC 時間的速率是以使用原子時鐘來追蹤時間的國際原子時間(TAI)為基礎。 不過,閏秒偶爾會新增至 UTC 時間,以在 +- 0.9 秒內保留 UTC 時間與 UT1(太陽時間)之間的差異。

原子時鐘所保留的時間與追蹤地球旋轉所保留的時間不一致。 這是因為地球的旋轉速度不規則,一般來說,每1.5年大約一秒的速度就會減速(雖然有時地球的旋轉速度會增加)。 閏秒調整會將 UTC 追蹤時間保持在一天平均長度的一秒內。

從本文開始,自1972年開始插入閏秒的做法以來,增加了27個閏秒。 國際地球旋轉和參考系統服務(IERS)決定何時將加入閏秒。 新增閏秒稱為「閏秒插入」。 插入閏秒時,時間接近午夜時,從 23 小時 59 分 59 秒到 23 小時 59 分 60 秒(插入的閏秒),然後到 0 小時 0 分 0 分 0 秒(午夜)。 從歷史上看,6 月 30 日或 12 月 31 日新增了閏秒。

根據定義,UTC 時間開始落後 TAI 10 秒(原子時間)。 1972 年已將 10 秒新增至 TAI 時間,以容納該點累積的閏秒。 假設自那以後又插入了 27 個閏秒,UTC 時間目前比 TAI (不可部分完成時鐘) 時間落後 37 秒。

成員

名稱 描述
from_sys 靜態。 將 sys_time 轉換成 utc_time
now 靜態。 傳回目前時間。
to_sys 靜態。 將 utc_time 轉換成 sys_time

非成員

名稱 描述
from_stream utc_time使用指定的格式,從指定的資料流程剖析 。
get_leap_second_info 取得leap_second_info ,指出提供的時間是否指定插入閏秒的時間。 它也包含 1970 年 1 月 1 日與指定持續時間之間的所有閏秒總和。
operator<< utc_time將 輸出至指定的資料流程。

便利類型別名

名稱 描述
utc_clock::duration 在 Microsoft 的實作中,它是 的 duration<system_clock::rep, system_clock::period> 同義字。 它代表以 100 奈秒為單位測量的時間持續時間。
utc_clock::period Microsoft 的實作會將此定義為 的同義字 system_clock::period 。 它代表持續時間中每個刻度之間的秒數 (100 奈秒) 時間。
utc_clock::rep 型別 ( long long ) 的同義字,用來表示這個時鐘中整數單位。 utc_clock::duration
utc_clock::time_point time_point<utc_clock> 的同義字。 用來表示 time_point 這個時鐘的 。

相關

名稱 描述
utc_seconds 同義字 using utc_seconds = utc_time<seconds>;
utc_time 代表 template<class Duration> using utc_time = time_point<utc_clock, Duration>;time_pointutc_clock 同義字。 您可以指定持續時間。 在 中定義 std::chrono

公用常數

名稱 描述
[ utc_clock::is_steady constant] (#is_steady_constant) 指出時鐘類型是否穩定。 其值為 false

需求

標頭: <chrono> (自 C++20 起)

命名空間:std::chrono

編譯器選項:/std:c++latest

from_sys

將 轉換成 sys_timeutc_time 靜態方法。

template<class Duration>
static utc_time<common_type_t<Duration, seconds>>
from_sys(const sys_time<Duration>& t);

參數

t
要進行轉換的 sys_time

傳回值

utc_time設定為最接近 的時機 sys_timet 。 如果直接對應不存在,則會傳回在閏秒插入期間time_point以及插入閏秒之前的最後一個可表示值 sys_time

to_sys

將 轉換成 utc_timesys_time 靜態方法。

template<class Duration>
static sys_time<common_type_t<Duration, seconds>>
to_sys(const utc_time<Duration>& t);

參數

t
要進行轉換的 utc_time

傳回值

sys_time設定為與 相等的時間 t 點。 如果直接對應不存在,在插入閏秒 t 之前,它是最後一個可表示的值,代表插入閏秒的時間點。 新增閏秒稱為「閏秒插入」。 插入閏秒時,接近午夜的時間從 23 小時 59 分 59 秒到 23 小時 59 分 60 秒(插入的閏秒),然後到 0 小時 0 分 0 分 0 秒(午夜)。 在過去,在 6 月 30 日或 12 月 31 日新增了閏秒。

is_steady

指定計時類型是否具「穩定性」。 在 Microsoft 的實作中, is_steady_constantfalseutc_clock由於 不穩定,因此您無法可靠地使用此時鐘在事件之前、事件之後的時間,並減去它們以取得事件的持續時間,因為時鐘可能會在該時間期間調整。

static const bool is_steady = false;

now

傳回目前 UTC 時間的靜態方法。 傳回的時間包括閏秒。

static time_point now() noexcept;

傳回值

time_point表示目前時間的 物件。 傳回的時間點實際上是 from_sys(system_clock::now())

另請參閱

<chrono>
file_clock class
gps_clock class
high_resolution_clock
local_t 結構
steady_clock 結構
system_clock 結構
tai_clock 類別
標頭檔參考