Javaでは、System.currentTimeMillis()
を使って、エポックタイムからのミリ秒単位の現在のタイムスタンプを得ることができます。
エポックタイムからのミリ秒単位のタイムスタンプを取得します。 1970年1月1日午前0時(UTC)との差をミリ秒単位で表したものです。
C++ではどのようにして同じものを得ることができますか?
現在、私は現在のタイムスタンプを取得するためにこれを使用しています。
struct timeval tp;
gettimeofday(&tp, NULL);
long int ms = tp.tv_sec * 1000 + tp.tv_usec / 1000; //get current timestamp in milliseconds
cout << ms << endl;
これは正しいでしょうか?
C++ 11 のライブラリにアクセスできるなら,std::chrono
ライブラリをチェックしてみてください.これを使うと,次のようにしてUnix Epochからのミリ秒を得ることができます。
#include <chrono>
// ...
using namespace std::chrono;
milliseconds ms = duration_cast< milliseconds >(
system_clock::now().time_since_epoch()
);