83

C++11 の不十分なドキュメントが原因で小さな問題が発生しました。

エポックからの時間をミリ秒、ナノ秒、または秒単位で取得したいので、この値を別の解像度に「キャスト」する必要があります。gettimeofday()でもできますが、簡単そうなのでstd::chronoでやってみました。

私は試した:

std::chrono::time_point<std::chrono::system_clock> now = 
    std::chrono::system_clock::now();

しかし、この方法で得られたtime_pointの解像度が何であるかはわかりません。また、この時間を単純なunsigned long longとして取得する方法もわかりません。また、それを別の解像度にキャストする方法も考えていません。

4

1 に答える 1

139

クロックの解像度now.time_since_epoch()を使用して、エポック以降の時間を表す期間を取得することができます。ミリ秒に変換するには、次を使用します。duration_cast

auto duration = now.time_since_epoch();
auto millis = std::chrono::duration_cast<std::chrono::milliseconds>(duration).count();
于 2012-02-01T02:19:11.273 に答える