我正在转换 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/