抱歉问一个简单的问题,但我已经尝试了几个小时,没有成功。我正在尝试实现一个函数:
std::string make_date_string()
我正在使用Howard Hinnant的日期库,可以让我执行如下操作:
cout << floor<days>(system_clock::now());
打印出类似以下的内容:
2017-07-09
我正在尝试找出如何将输出放入std::string中,以便我可以从我的函数中返回它,但我一无所获。
std::ostringstream oss;
oss << floor<days>(system_clock::now());
std::string time = oss.str();
template<typename Fmt>
floor(std::chrono::timepoint);
该功能作为iostream操纵器实现,可与任何std::ostream
实现一起使用。
被接受的答案是一个很好的答案(我已经点赞了)。
这里有一种替代表述,使用相同的库:
#include "date.h"
#include <string>
std::string
make_date_string()
{
return date::format("%F", std::chrono::system_clock::now());
}
这将创建一个格式为"2017-07-09"
的std::string
。这种特定的表达方式很好,因为您不必显式构造std::ostringstream
,并且您可以轻松地将格式变为您喜欢的任何格式,例如:
return date::format("%m/%d/%Y", std::chrono::system_clock::now());
"07/09/2017"
。