奇怪的是,
std::cout << boost::posix_time::from_iso_string("20120927T062299");// 99 seconds!
产生2012-Sep-27 06:23:39
,即飞过秒数包裹到下一分钟。这真的是预期的行为吗?如果是这样,在这种情况下,我如何强制功能失败?
不同的库实现者对导致错误的原因和严重性有不同的想法。
简单的答案是,如果字符串来自用户输入,请在将其提供给任何需要正确格式字符串的函数之前自己检查它。无论如何,这通常是一个好主意。在这种情况下,正则表达式检查将相当简单。