【发布时间】:2014-04-30 17:06:35
【问题描述】:
是否有标准实现将std::duration 打印为人类可读的持续时间?
steady_clock::time_point start = steady_clock::now();
doSomeFoo();
steady_clock::time_point end = steady_clock::now();
std::cout << "Operation took "
<< may_be_std::theMagic(start-end) << std::endl;
应该打印类似于:
"Operation took 10d:15h:12m:14:s"
或类似的东西。
【问题讨论】:
-
这个 en.cppreference.com/w/cpp/chrono/duration 应该帮助 + sprintf
-
@MaciejLichoń 不。它不能用于转换持续时间。例如 121 秒应该是 2m,1s。 Thoug
duration_cast仅将其转换为 2 分钟,对于更大的值则超过 60 分钟 -
好像没有这样的东西。
-
您可能想看看std::time_put。不幸的是,这使用了表示std::tm。