file_clock
类
此时钟可以表示文件系统中使用的文件时间值的范围和分辨率。
语法
using file_clock = std::filesystem::_File_time_clock; // C++20
备注
在 Microsoft 实现中,时期,即 file_clock
开始测量时间的时间,是 1/1/1601 00:00:00。
ISO C++ 标准提供了一个选择,即提供 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 |
用于表示此时钟的 file_clock::duration 中的整数单位的类型 (long long ) 的同义词。 |
相关
名称 | 描述 |
---|---|
file_time |
time_point<file_clock, Duration> 的同义词。 表示 file_clock 的 time_point 。 指定 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++ 标准允许此类型定义 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++ 标准允许此类型定义 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
来为事件计时。
static const bool is_steady = false;
现在
静态方法,返回当前的系统时间,分辨率以纳秒为单位,由 file_clock
的时期调整。
static time_point now() noexcept;
返回值
表示当前对象的 time_point 对象。
另请参阅
<chrono>
gps_clock class
high_resolution_clock
local_t
结构
steady_clock
结构
system_clock
结构
tai_clock
类
utc_clock
类
头文件引用