Em Java, podemos utilizar System.currentTimeMillis()
para obter o timestamp atual em milissegundos desde a época, que é -
a diferença, medida em milissegundos, entre o tempo actual e meia-noite, 1 de janeiro de 1970 UTC.
Em C++ como conseguir a mesma coisa?
Actualmente estou a usar isto para obter o carimbo da hora actual.
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;
Isto parece certo ou não?
Se você tem acesso às bibliotecas do C++ 11, confira a biblioteca std::chrono`. Você pode usá-la para obter os milissegundos desde a Epoca Unix, assim:
#include <chrono>
// ...
using namespace std::chrono;
milliseconds ms = duration_cast< milliseconds >(
system_clock::now().time_since_epoch()
);