How to get current timestamp in milliseconds since 1970 just the way Java gets
use <sys/time.h>
struct timeval tp;
gettimeofday(&tp, NULL);
long int ms = tp.tv_sec * 1000 + tp.tv_usec / 1000;
refer this.
If you have access to the C++ 11 libraries, check out the std::chrono
library. You can use it to get the milliseconds since the Unix Epoch like this:
#include <chrono>
// ...
using namespace std::chrono;
milliseconds ms = duration_cast< milliseconds >(
system_clock::now().time_since_epoch()
);
Since C++11 you can use std::chrono
:
- get current system time:
std::chrono::system_clock::now()
- get time since epoch:
.time_since_epoch()
- translate the underlying unit to milliseconds:
duration_cast<milliseconds>(d)
- translate
std::chrono::milliseconds
to integer (uint64_t
to avoid overflow)
#include <chrono>
#include <cstdint>
#include <iostream>
uint64_t timeSinceEpochMillisec() {
using namespace std::chrono;
return duration_cast<milliseconds>(system_clock::now().time_since_epoch()).count();
}
int main() {
std::cout << timeSinceEpochMillisec() << std::endl;
return 0;
}