我試圖使用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