web-dev-qa-db-ja.com

C ++クロノシステム時間(ミリ秒)、時間操作

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

エポック以降の時間をミリ秒単位またはナノ秒または秒単位で取得したいのですが、この値を別の解像度に「キャスト」する必要があります。私はgettimeofday()を使用してそれを行うことができますが、それは簡単になりますので、std :: chronoを使用してそれを達成しようとしました。

私は試した:

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

しかし、この方法で取得されたtime_pointの解像度が何であるかはわかりません。また、この時間を単純な符号なしlong longとして取得する方法がわかりません。

54
Dejwi

時計の解像度 で、now.time_since_Epoch()を実行して、エポック以降の時間を表す期間を取得できます。ミリ秒に変換するには、 duration_cast

auto duration = now.time_since_Epoch();
auto millis = std::chrono::duration_cast<std::chrono::milliseconds>(duration).count();
93