1. ホーム
  2. c++

[解決済み] C++クロノシステム時間(ミリ秒)、時間操作

2023-06-22 18:34:05

質問

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

私は、ミリ秒、ナノ秒、または秒単位でエポックからの時間を取得したいと思います。 私はgettimeofday()を使用してそれを行うことができますが、それは簡単なので、私はstd::chronoを使用してそれを達成しようとしました。

試してみました。

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

しかし、このようにして得られたtime_pointの解像度とは何か、この時間を単純なunsigned long longとして取得する方法がわからないし、他の解像度にキャストする方法も思いつきません。

どのように解決するのですか?

以下の方法があります。 now.time_since_epoch() で、エポックからの時間を表すデュレーションを取得します。 はクロックの分解能 . ミリ秒に変換する場合は duration_cast :

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