我正在解析日志文件中的消息,我希望将与每条消息关联的时间戳存储在一个结构字段中,以便可以比较消息的顺序。我不确定可以/应该使用什么类型。日志消息具有自纪元以来的秒数和额外的毫秒数,以确保精度。我可以使用std::chrono::time_point吗?我如何从两个整数计数的1.自纪元以来的秒数1.额外毫秒我是否可以/应该使用其他STD类型?
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::chrono::system_clock::time_point
std::cout << std::chrono::time_point_cast<std::chrono::milliseconds>(time).time_since_epoch().count() << std::endl;
这将生成1678369127100作为输出
1678369127100
1条答案
按热度按时间zwghvu4y1#
假设您想使用system_clock,并且知道如何将秒和毫秒提取到time_t变量中,您可以这样做:
时间将是
std::chrono::system_clock::time_point
,带有您的时间戳。您可以通过这将生成
1678369127100
作为输出