我试图找出t的值是多少?是秒还是毫秒? steady_clock参考未提及所使用的单位。
auto t = std::chrono::steady_clock::now() / 1000;
auto p = t/1000;
我在想now()
返回秒,t以毫秒为单位,p以微秒为单位。让我知道我做对了吗?
答案 0 :(得分:1)
它是std::chrono::time_point<std::chrono::steady_clock>
(文档on CppReference的质量通常更高)。
猜测下一个问题-使用time_since_epoch()
(将文档转换为秒数,该文档提供了从中提取无量纲秒数的示例),也可以使用(now - epoch) / 1_second
< / p>
答案 1 :(得分:0)
std::chrono::steady_clock::now()返回的值的单位不是标准定义的(它是类型为std::chrono::time_point的常规值)。
std :: chrono :: time_point的分辨率(它存储类型为Duration的值,指示从Clock纪元开始的时间间隔)取决于实现(平台/编译器),因此您不应该依赖它。
要获得所需的单位,您可以通过duration casting轻松地将time_point转换为以秒,毫秒等为单位的值:
auto milliseconds = std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::steady_clock::now().time_since_epoch()).count();
({time_since_epoch()返回一个持续时间,代表* this和时钟纪元之间的时间量)。