time_since_epoch 的 std::chrono 默认持续时间

Sea*_*nch 7 c++ c++11 c++-chrono

如果我有以下时钟并使用它来计算自时钟纪元以来的滴答计数,那么这个计数实际上代表什么。

std::chrono::high_resolution_clock::now().time_since_epoch().count();
Run Code Online (Sandbox Code Playgroud)

例如,我刚刚运行了这个并得到了1389375799048790227. 这个数字是什么意思?是纳秒、微秒等吗?

yng*_*ccc 6

您始终可以使用将其投射到所需的时间单位 duration_cast

using namespace std::chrono;
auto time = duration_cast<seconds>(high_resolution_clock::now().time_since_epoch());
Run Code Online (Sandbox Code Playgroud)

现在time.count()将返回秒数。


How*_*ant 5

持续时间的类型是std::chrono::high_resolution_clock::duration。您可以使用:std::chrono::high_resolution_clock::duration::period::num和来检查持续时间的刻度周期std::chrono::high_resolution_clock::duration::period::den。这是一个分数的分子和分母,代表每个刻度的秒数(例如,1/1000000000 表示纳秒)。

纪元是未指定的,但对你来说是 1389375799048790227 个滴答声,从你得到那个结果开始。