如何获得自1970年以来以毫秒为单位的当前时间戳,就像Java获得的方式一样

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (122)

在Java中,我们可以使用System.currentTimeMillis()从历元时间开始以毫秒为单位获取当前时间戳,

1970年1月1日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()
);
用户回答回答于

使用 <sys/time.h>

struct timeval tp;
gettimeofday(&tp, NULL);
long int ms = tp.tv_sec * 1000 + tp.tv_usec / 1000;

扫码关注云+社区

领取腾讯云代金券