noa*_*oah 0 c++ c++-chrono c++20
我试图将时间格式化为 hh::mm::ss 然后将其放入宽字符串流中。代码如下。
std::chrono::steady_clock::time_point end = std::chrono::steady_clock::now();
std::chrono::steady_clock::duration time_elapsed = end - start;
std::chrono::hh_mm_ss formatted {std::chrono::duration_cast<std::chrono::milliseconds> (time_elapsed)};
Run Code Online (Sandbox Code Playgroud)
start位于类的构造函数中。使用<<流运算符不起作用,我没有看到任何方法将此类型转换为字符串。
我的问题是如何转换formatted为字符串(c 风格、wstring 或普通字符串)?
以下内容对我有用MSVC。截至 2021 年 8 月 12 日,我必须将/std:c++latest开关与 Visual Studio 版本一起使用16.11.2才能使该解决方案发挥作用。
const auto start{ std::chrono::steady_clock::now( ) };
std::this_thread::sleep_for( std::chrono::milliseconds{ 1000 } );
const auto end{ std::chrono::steady_clock::now( ) };
const auto elapsed{ end - start };
std::chrono::hh_mm_ss formatted{
std::chrono::duration_cast<std::chrono::milliseconds>( elapsed ) };
std::cout << formatted << '\n';
// Or
std::stringstream ss{ };
ss << formatted;
std::cout << ss.str( ) << '\n';
Run Code Online (Sandbox Code Playgroud)