【问题标题】:Android NDK chrono epoch is not correct (std::chrono::high_resolution_clock)Android NDK chrono epoch 不正确(std::chrono::high_resolution_clock)
【发布时间】:2015-05-14 08:21:38
【问题描述】:

下面的代码不打印epoch。

typedef std::chrono::high_resolution_clock Clock;
typedef std::chrono::milliseconds Milliseconds;
auto res = std::chrono::duration_cast<Milliseconds>(Clock::now().time_since_epoch()).count();
std::stringstream ss;
ss << res;
printf(">>>>>>>>>>> TimeUtiles::getTimestamp %s", ss.str().c_str());

我使用 NDK r9d 并且选择的 NDK 工具链版本是 4.8 !

编辑:

std::chrono::high_resolution_clock 更改为std::chrono::system_clock,它起作用了。为什么?

【问题讨论】:

  • 打印什么? Milliseconds 是什么? Clock 是什么?顺便说一下,还有更新版本的 NDK。
  • @Drop 它只打印 8 位数字所以溢出垃圾。

标签: android c++ android-ndk chrono


【解决方案1】:

system_clock 就像手表(智能手机接管地球之前手腕上的东西)。它可以告诉你一天中的时间。而且由于没有时钟能保持精确的时间,它有时会询问另一个时钟现在是什么时间,并对其自身进行微小的调整以保持准确。

steady_clock 就像一个秒表。它非常适合为跑步者计时,或计时您的功能。它从不自我调整,而是尽可能地每秒标记一秒。但它不知道一天中的什么时间,甚至一年中的哪一天。

high_resolution_clock 也与任何人类日历或时间系统无关,并且可以作为typedefsystem_clocksteady_clock。实际上,对于这些时钟之一,它始终是 typedef

在您的系统上,high_resolution_clock 显然与 steady_clock 是同一类型。

【讨论】:

    猜你喜欢
    • 2017-09-02
    • 1970-01-01
    • 2014-03-23
    • 2017-08-31
    • 2015-06-04
    • 2016-09-22
    • 2017-11-25
    • 2018-05-21
    • 1970-01-01
    相关资源
    最近更新 更多