C++ boost Date_Time Date';行不通
我正在尝试使用boost 1.55 date_time库编写代码来解析日期时间字符串。但它总是生成非日期时间日期C++ boost Date_Time Date';行不通,c++,boost,C++,Boost,我正在尝试使用boost 1.55 date_time库编写代码来解析日期时间字符串。但它总是生成非日期时间日期 boost::gregorian::date d(2005, 6, 25); boost::gregorian::date d2; boost::gregorian::date_facet* facet(new boost::gregorian::date_facet("%Y %m %d")); stringstream ss; ss.imbue(std::locale(std::c
boost::gregorian::date d(2005, 6, 25);
boost::gregorian::date d2;
boost::gregorian::date_facet* facet(new boost::gregorian::date_facet("%Y %m %d"));
stringstream ss;
ss.imbue(std::locale(std::cout.getloc(), facet));
ss << d; string s = ss.str(); // s = "2005 06 25"
cout << s << endl;
stringstream ss2(s);
ss2 >> d2; // not-a-date-time
cout << d2 << endl;
格里高利:日期d(2005年6月25日);
boost::gregorian::日期d2;
boost::gregorian::date\u facet*facet(新的boost::gregorian::date\u facet(“%Y%m%d”);
细流ss;
imbue(std::locale(std::cout.getloc(),facet));
ss您想要解析,因此需要输入方面:
查看它
#include <boost/date_time/gregorian/greg_date.hpp>
#include <boost/date_time/gregorian/gregorian_io.hpp>
#include <iostream>
int main()
{
boost::gregorian::date const d(2005, 6, 25);
boost::gregorian::date d2;
std::stringstream oss;
oss.imbue(std::locale(std::cout.getloc(), new boost::gregorian::date_facet("%Y %m %d")));
oss << d;
oss.imbue(std::locale(std::cout.getloc(), new boost::gregorian::date_input_facet("%Y %m %d")));
if (oss >> d2)
std::cout << d2 << std::endl;
else
std::cout << "Not parsed\n";
}
在我的机器上我可以在Mac OSSeem上复制这些内容,如。。。嗯。。。在写入流之后,您正在读取空的结尾?ss不需要被搜索到0或者重置或者其他什么吗?@ebyrob也一样,看看我编辑的答案。然而,事实却不见了too@ebyrob没错。我过度简化了示例代码。我现在已经修好了。
2005-Jun-25