C ++ 20 <chrono>
все еще находится в разработке для g cc. Я не видел публикации c ETA для этого.
Ваш синтаксис для std::chrono::parse
выглядит правильным. Если вы хотите использовать бесплатную предварительную версию C ++ 20 <chrono>
с открытым исходным кодом только для заголовков, вы можете заставить ее работать, добавив #include "date/date.h"
и используя вместо этого date::parse
.
Обратите внимание, что в результате myDate
будет 2020-05-24 00:00:00 UT C.
std::put_time
находится в заголовке <iomanip>
и является манипулятор . После добавления этого заголовка и <iostream>
вы должны использовать его следующим образом:
std::cout << "date: " << std::put_time(&tm, "%Y-%m-%e") << '\n';
Если вам нужен вывод в std::string
, вам нужно сначала передать манипулятор в std::stringstream
.
C ++ 20 <chrono>
предоставит альтернативу C API для форматирования:
std::cout << "date: " << std::format("{%Y-%m-%e}", myDate) << '\n';
Библиотека предварительного просмотра также предоставляет это с немного измененным строка формата:
std::cout << "date: " << date::format("%Y-%m-%e", myDate) << '\n';