计时类型到字符串 c++20
chrono type to string 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)};
start
在class的构造函数中。使用 <<
流运算符不起作用,我看不出有任何方法可以将此类型转换为字符串。
我的问题是如何将 formatted
转换为字符串(c 样式、wstring 或普通字符串)?
以下内容适用于 MSVC
。
从 2021-08-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';
我正在尝试将时间格式化为 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)};
start
在class的构造函数中。使用 <<
流运算符不起作用,我看不出有任何方法可以将此类型转换为字符串。
我的问题是如何将 formatted
转换为字符串(c 样式、wstring 或普通字符串)?
以下内容适用于 MSVC
。
从 2021-08-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';