First:
Use the std::chrono::system_clock::now() Method to Get Time in Milliseconds in C++
The std::chrono::system_clock
class is the interface in C++ to get system-wide real-time wall clock.
Most systems use Unix time, which is represented as seconds past from 00:00:00 UTC on 1 January 1970 (an arbitrary date), called Unix epoch. Note that leap seconds are ignored. Thus Unix time is not truly an accurate representation of UTC.
Firstly, the now()
method is called to return the current point in time. The next method called is time_since_epoch
to retrieve the amount of time between *this
and the clock’s epoch, but it returns an std::chrono::duration
class object. This object should call the count
method to return the actual number of ticks, and to represent it as milliseconds. The result is cast using duration_cast<milliseconds>
.
#include <chrono>
#include <iostream>
#include <sys/time.h>
#include <ctime>
using std::cout; using std::endl;
using std::chrono::duration_cast;
using std::chrono::milliseconds;
using std::chrono::seconds;
using std::chrono::system_clock;
int main() {
auto millisec_since_epoch = duration_cast<milliseconds>(system_clock::now().time_since_epoch()).count();
auto sec_since_epoch = duration_cast<seconds>(system_clock::now().time_since_epoch()).count();
cout << "seconds since epoch: " << sec_since_epoch << endl;
cout << "milliseconds since epoch: " << millisec_since_epoch << endl;
return EXIT_SUCCESS;
}
Second:
clock()函数。 经过实验,不够稳定与精确。