C++11 chrono 从数字创建 time_point

标签 c++11 c++-chrono

我正在转换 std::chrono::time_point<std::chrono::high_resolution_clock>使用

的时间戳
std::chrono::duration_cast<std::chrono::milliseconds>(
  getTimestamp().time_since_epoch()
).count()

转换为毫秒精度的 64 位时间戳。这是数据之间的一些序列化所必需的。稍后我需要将这些时间戳转换回 std::chrono::time_point<std::chrono::high_resolution_clock>以便进一步加工。在 C++11 中执行此操作的正确方法是什么?

最佳答案

将毫秒数转换为持续时间并将其添加到纪元time_point:

auto epoch = std::chrono::time_point<std::chrono::high_resolution_clock>();
auto since_epoch = std::chrono::milliseconds(deserialised);
auto timestamp = epoch + since_epoch;

关于C++11 chrono 从数字创建 time_point,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24913749/

相关文章:

c++ - 有没有我不会使用 std::make_shared 的情况?

c++ - OS-X 支持 std::tr1

c++ - 如何将时间 (chrono) 除以给定值

c++ - sleep_until 过去的某个时间点

C++ 如何绑定(bind)和调用模板化类型方法

c++ - 访问基类的私有(private)变量时派生类出错

c++ - 取消 C++ 11 异步任务

c++ - 有没有办法将零分配给 std::chrono::nanoseconds

c++ - std::chrono::duration_cast 1 秒和 2 秒的奇怪结果

c++ - 实时与 CPU 时间性能测量