代码之家  ›  专栏  ›  技术社区  ›  Rajeshwar

稳定时钟:现在返回秒?

  •  0
  • Rajeshwar  · 技术社区  · 7 年前

    我想知道t的值是多少?是秒还是毫秒?这个 steady_clock 参考文献没有提到使用的单位。

     auto t = std::chrono::steady_clock::now() / 1000;
     auto p = t/1000;
    

    我在想 now() 返回秒,t以毫秒为单位,p以微秒为单位。如果我做对了就告诉我?

    2 回复  |  直到 7 年前
        1
  •  1
  •   bobah    7 年前

    它是 std::chrono::time_point<std::chrono::steady_clock> (文件 on CppReference 通常质量更好)。

    猜猜你的下一个问题-把它转换成秒 time_since_epoch() (文档中有一个从中提取无维度秒数的示例),或者 (now - epoch) / 1_second

        2
  •  0
  •   Dom    7 年前

    返回的价值单位 std::chrono::steady_clock::now() 不是由标准定义的(它是类型的常规值 std::chrono::time_point )

    STD::TimeO::TimeSyPoT(它存储一个类型的持续时间值,指示从时钟的开头开始的时间间隔)是依赖于实现的(平台/编译器),并且不应该依赖它。

    为了获得所需的单元,可以很容易地将TimeSyPoT转换成以秒、毫秒等为单位的值。 duration casting :

    auto milliseconds = std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::steady_clock::now().time_since_epoch()).count();
    

    ( time_since_epoch() 返回表示从*到时钟纪元之间的时间量的持续时间。