c++ - 在 C++ 中从 X 毫秒前获取时间戳

标签 c++ time

我正在尝试从 X 毫秒前获取 linux 时间戳。

我知道你可以在几秒钟内做这样的事情:

time_t old_time = difftime(time(nullptr), num_seconds)

但是,我试图以毫秒为单位获取时间戳(也就是从纪元开始的时间),不幸的是,似乎 difftime/time(nullptr) 只能以秒为增量工作。

我还看到了一些关于使用 std::chrono::system_clock 的想法,但我无法让它发挥作用,这与我转换/等等的方式有关。我认为是错误的。
这是我尝试的一个示例(我的第一步,甚至没有编译):
Clock::time_point time = Clock::now();
std::chrono::system_clock::duration diff = 
  std::chrono::duration<int,std::milli>(100);
time = time - diff;

time_t final_timestamp = std::chrono::duration_cast<std::chrono::milliseconds>(time.time_since_epoch()).count();

有谁知道这个问题的简单解决方案?提前致谢!

最佳答案

#include <chrono>
#include <iostream>

int
main()
{
    using namespace std::chrono;
    auto old_time = time_point_cast<milliseconds>(system_clock::now()) - 100ms;
    std::cout << old_time.time_since_epoch().count() << "ms\n";
}

这将获取当前时间 UTC,将其截断为毫秒精度,然后从该时间点减去 100 毫秒。

然后它提取基础值并将其打印出来(自 1970-01-01 00:00:00.000 UTC 以来的毫秒数)。

关于c++ - 在 C++ 中从 X 毫秒前获取时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59240910/

相关文章:

c++ - 数组下标的无效类型 ‘<unresolved overloaded function type>[int]’ - C++

C++指针指向函数指针的指针数组?任何线索如何去做?

swift - 到完整日期的毫秒数在我的时区返回错误的日期

php - PHP、日期、MySQL 中的时区...?

c++ - 如何验证自签名证书?

c++ - 声音多线程

gwt - 大型 GWT 项目和编译时间问题

c++ - 时间测量在 C++ 中不起作用

c++ - 使用派生单位的计算

c++ - 从计算机向计算机发送 XML 数据 - Qt