我可以使用哪种标准的c++类型来表示精确到毫秒的历元时间?

myzjeezk  于 2023-03-14  发布在  其他
关注(0)|答案(1)|浏览(157)

我正在解析日志文件中的消息,我希望将与每条消息关联的时间戳存储在一个结构字段中,以便可以比较消息的顺序。我不确定可以/应该使用什么类型。日志消息具有自纪元以来的秒数和额外的毫秒数,以确保精度。
我可以使用std::chrono::time_point吗?我如何从两个整数计数的
1.自纪元以来的秒数
1.额外毫秒
我是否可以/应该使用其他STD类型?

zwghvu4y

zwghvu4y1#

假设您想使用system_clock,并且知道如何将秒和毫秒提取到time_t变量中,您可以这样做:

time_t timestamp_sec = 1678369127;
time_t timestamp_ms = 100;

auto time = std::chrono::system_clock::from_time_t(timestamp_sec) + std::chrono::milliseconds(timestamp_ms);

时间将是std::chrono::system_clock::time_point,带有您的时间戳。您可以通过

std::cout << std::chrono::time_point_cast<std::chrono::milliseconds>(time).time_since_epoch().count() << std::endl;

这将生成1678369127100作为输出

相关问题