在Java中,我们可以使用System.currentTimeMillis()获得当前的时间戳(以毫秒为单位),该时间戳是
这个差值,以毫秒为单位,与1970年1月1日世界协调时间1月1日午夜之间的差值。
在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;这个看起来对不对?
发布于 2013-10-24 01:28:43
如果您可以访问C++ 11库,请查看std::chrono库。您可以使用它获得自Unix时代以来的毫秒,如下所示:
#include <chrono>
// ...
using namespace std::chrono;
milliseconds ms = duration_cast< milliseconds >(
system_clock::now().time_since_epoch()
);发布于 2013-10-24 01:18:05
使用<sys/time.h>
struct timeval tp;
gettimeofday(&tp, NULL);
long int ms = tp.tv_sec * 1000 + tp.tv_usec / 1000;请参考这。
发布于 2019-05-13 07:39:44
由于C++11,您可以使用std::chrono
std::chrono::system_clock::now().time_since_epoch()duration_cast<milliseconds>(d)std::chrono::milliseconds转换为整数(uint64_t以避免溢出)#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;
}https://stackoverflow.com/questions/19555121
复制相似问题