Boost Timer 24小时格式
Boost Timer 24 hour format
我使用boost::timer::cpu_timer
来计算算法的"用户进程时间",如下所示:
boost::timer::cpu_timer timer;
boost::timer::nanosecond_type userTime = timer.elapsed().user;
我的问题是如何在HH::MM::SS.mmm
格式格式化userTime
?我知道我可以自己写代码,但我希望Boost提供一些方法来做这件事。
我遇到了这个例子,但它使用了boost::chrono::duration<Rep, Period>
,我不确定如何从boost::timer::nanosecond_type
获得。
需要将nanosecond_type
转换为duration
,再转换为time_point
。
#include <iostream>
#include <boost/timer/timer.hpp>
#include <boost/chrono.hpp>
#include <boost/format.hpp>
namespace chrono = boost::chrono;
int main()
{
// get now time & start timer
chrono::system_clock::time_point start_time = chrono::system_clock::now();
boost::timer::cpu_timer timer;
for (int i = 0; i < 100000; ++i) {}
// elapsed time conversion to time_point
chrono::system_clock::time_point end_time
= chrono::time_point_cast<chrono::system_clock::duration>(
start_time + chrono::nanoseconds(timer.elapsed().user));
// time_point conversion to time_t&tm
std::time_t time = chrono::system_clock::to_time_t(end_time);
std::tm* t = std::localtime(&time);
// formatting
std::size_t fractional_seconds = chrono::duration_cast<chrono::milliseconds>(
end_time.time_since_epoch()
).count() % 1000;
std::string s = (boost::format("%d:%d:%d.%d")
% t->tm_hour
% t->tm_min
% t->tm_sec
% fractional_seconds
).str();
std::cout << s << std::endl;
}
可能的输出:
10:42:55.445
相关文章:
- 如何在openssl-ecc中获取十六进制格式的私钥
- 将"打开的CV图像"中的"颜色"转换为整数格式
- 时间转换为 24 小时格式 cpp
- 一直在尝试在 c++ 中将 12 小时制格式转换为 24 小时制格式
- 如何将QTime 12转换为24 HR格式和Viceversa
- 使用提升解析日期时间字符串:采用个位数小时格式
- 比较12小时格式时间
- 12小时到24小时的时间转换
- 将几秒钟转换为几天,小时,分钟,秒格式(C )
- 以 24 小时格式比较 C/C++ 中的小时数
- C++ :将时间从 12 小时转换为 24 小时的类,无法识别自己的数据字段
- 检查OSX是否在24小时内运行
- 等待24小时的线程的潜在系统成本
- 两个时间之间经过的时间,格式为24小时hh:mm:ss
- 我正在尝试创建一个使用布尔表达式在 24 小时制和 12 小时制之间切换的函数
- 图像转换从24 bpp到16 bpp格式
- Boost Timer 24小时格式
- C功能从iOS设备设置中查找iOS用户12/24小时偏好
- 在c++中将24小时时间转换为整数值
- 如何使用iMacros设置24小时操作?