這個時鐘可以代表文件系統中使用的檔案時間值範圍和解析度。
語法
using file_clock = std::filesystem::_File_time_clock; // C++20
備註
在Microsoft實作中,epoch 或開始 file_clock 測量時間的時間是 1/1/1601 00:00:00。
ISO C++ Standard 提供 和 to_sys() from_sys()或 to_utc() from_utc()之間的選擇。 Microsoft實作選擇 to_utc 和 from_utc。
成員
| 名稱 | 描述 |
|---|---|
from_utc |
靜態。 將 utc_time 轉換成 file_time。 |
now |
靜態。 傳回目前的國際原子時間。 |
to_utc |
靜態。 轉換 file_time utc_time為 。 |
非成員
| 名稱 | 描述 |
|---|---|
from_stream |
file_clock使用指定的格式,從指定的資料串流剖析 。 |
operator<< |
輸出 file_time 至指定的數據流。 |
便利類型別名
| 名稱 | 描述 |
|---|---|
file_clock::duration |
在 Microsoft 的實作中,它是 的 duration<long long, ratio<1, 10'000'000>同義字。 它代表以 100 奈秒為單位測量的時間持續時間。 |
file_clock::time_point |
time_point<File_time_clock> 的同義字。 用來表示 time_point 這個時鐘的 。 |
file_clock::period |
在 Microsoft 的實作中,它是 的 ratio<1, 10'000'000>同義字。 它代表持續時間中每個刻度之間的秒數 (100 奈秒) 時間。 |
file_clock::rep |
型別 (long long) 的同義字,用來表示這個時鐘中整數單位。file_clock::duration |
相關
| 名稱 | 描述 |
|---|---|
file_time |
time_point<file_clock, Duration> 的同義字。 表示 time_point 的 file_clock。 您可以指定 Duration。 在中定義 std::chrono |
公用常數
| 名稱 | 描述 |
|---|---|
file_clock::is_steady constant |
指出時鐘類型是否穩定。 其值為 false。 |
需求
標頭: <chrono> (自C++20起)
命名空間:std::chrono
編譯程序選項: /std:c++latest
from_utc
將轉換成 utc_time 的 file_time靜態方法。
template <class Duration>
static file_time<common_type_t<_Duration, chrono::seconds>>
from_utc(const utc_time<Duration>& t);
參數
t
要進行轉換的 utc_time。
傳回值
file_time,表示對等utc_time的 t。 它會計算為 utc_clock::to_sys(utc_time).time_since_epoch() 減去 2017 年 1 月 1 日 (27) 之前的閏秒數。 Windows 10 版本 1809 和 Windows Server 2019 引進了閏秒的支援。 默認會啟用該支援,但可以停用。 啟用時,只有在 2018 年 7 月之後的閏秒(不是 2017 年 1 月 1 日到 2018 年 7 月之間)才會包含在時間中。
建議您使用 std::chrono::clock_cast 來轉換時鐘之間的時間點,而不是直接呼叫此函式。 這特別相關, file_clock 因為 ISO C++ Standard 允許此類型定義 to_utc 和 from_utc、 或 to_sys 與 from_sys。 由於實作可能會因廠商而異,因此您可以改用 clock_cast ,而所有連結庫廠商都會提供。
範例: from_utc
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
std::cout << clock_cast<file_clock>(utc_clock::now());
return 0;
}
2021-08-17 00:20:41.2594557
to_utc
將轉換成 file_time 的 utc_time靜態方法。
template <class Duration>
static utc_time<common_type_t<Duration, seconds>>
to_utc(const file_time<Duration>& t);
參數
t
要進行轉換的 file_time。
傳回值
utc_time,表示對等file_time的 t。 建議您使用 std::chrono::clock_cast 來轉換時鐘之間的時間點,而不是直接呼叫此函式。 這特別相關, file_clock 因為 ISO C++ Standard 允許此類型定義 to_utc 和 from_utc、 或 to_sys 與 from_sys。 由於實作可能會因廠商而異,因此您可以改用 clock_cast ,而所有連結庫廠商都會提供。
範例: to_utc
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
std::cout << clock_cast<std::chrono::utc_clock>(file_clock::now());
return 0;
}
2021-08-17 00:20:41.2594557
is_steady
指定計時類型是否具「穩定性」。 在 Microsoft 實作中, is_steady 是 false。 這讓這個時鐘不適合測量作業所花費的時間,因為當您計時某個專案時,可以調整不穩定的時鐘,因此測量的時間可能會關閉,甚至為負數。 high_resolution_clock請改用 to time 事件。
static const bool is_steady = false;
now
會傳回目前系統時間的靜態方法,其解析度為 nanosecond,由 的 file_clockepoch 調整。
static time_point now() noexcept;
傳回值
time_point 物件,代表目前的時間。
另請參閱
<chrono>
gps_clock class
high_resolution_clock
local_t 結構
steady_clock 結構
system_clock 結構
tai_clock 類別
utc_clock 類別
標頭檔參考