我试图使用boost :: date_time来解析日期字符串(从Twitter API获得)到一个ptime对象。日期格式的一个例子是:年已超出有效范围:1400 ... 10000
Thu Mar 24 16:12:42 +0000 2011
不管我做什么,虽然,我得到一个“新年是超出有效范围的”异常试图解析字符串。日期格式相貌端正对我来说,这里是代码:
boost::posix_time::ptime created_time;
std::stringstream ss(created_string);
ss.exceptions(std::ios_base::failbit); //Turn on exceptions
ss.imbue(std::locale(ss.getloc(), new boost::posix_time::time_input_facet("%a %b %d %T %q %Y")));
ss >> created_time;
在上面的代码“created_string”包含上述日期。我在格式字符串中犯了错误吗?
有一件事是肯定的,你已经使用'函数调用中创建new'内存泄漏。你对Java或C#更有经验吗? – 2011-03-24 16:27:40
是的,别担心我知道这一点,我刚刚重新安排了代码,试图让它工作,我会解决它,当我得到日期解析:)编辑:其实,我不认为它会导致泄漏... time_input_facet被refcounted,除非你传递1作为第二个可选的构造函数arg。 – Kazade 2011-03-24 16:37:00
是的,我只是检查,传递一个指向堆栈上的time_input_facet的指针导致崩溃时语言环境被破坏(除非你传递1给构造函数禁用refcounting)。因此,上面的代码不会泄漏(即使它看起来应该:)) – Kazade 2011-03-24 16:54:54