c++ - std::chrono::system_clock 使用什么精度?

标签 c++ time chrono system-clock

这是我找到的一些代码:

std::cout << std::chrono::system_clock::now().time_since_epoch().count() << std::endl;

这为我打印了 1662563612364838407;所以它看起来像打印自 UNIX 纪元 (1970-01-01) 以来的纳秒数。

但是这个精度有保证吗?我没有在 https://en.cppreference.com/w/cpp/chrono/system_clock 找到任何指示该值将始终以纳秒为单位。这是否有可能返回例如微秒与另一个编译器、操作系统或硬件?

最佳答案

不,不能保证。您可以使用时钟 period 成员别名来获取以秒为单位的滴答周期:

#include <chrono>
#include <iostream>

int main() {
    std::cout << std::chrono::system_clock::period::num << " / " << std::chrono::system_clock::period::den;
}

可能的输出:

1 / 1000000000

关于c++ - std::chrono::system_clock 使用什么精度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73638117/

相关文章:

c++ - 链表: Inserting a node at the end

google-apps-script - 从工作表中获取时间时,Google 脚本会增加 +1 分钟

php - 使用当前时间和以天为键、以连字符分隔的时间范围为值的数组检查企业是否营业

c++ - std::time_point往返于std::string

C++ 将参数发送到 exe 文件

c++ - R 值引用和 std::make_unique

c++ - 如何找到两个日期之间以秒和纳秒为单位的时间差?

c++ - 我可以重新定位 chrono 类以使用微 Controller 作为滴答生成器吗?

c++ - 查找两个数字之间的值范围时的奇怪行为

sql-server - 在 SQL Server 中减去两个时间值