奇怪的是,
std::cout << boost::posix_time::from_iso_string("20120927T062299");// 99 seconds!
产生2012-Sep-27 06:23:39
,即溢出的秒数包含在下一分钟。这真的是一种预期的行为吗?如果是这样,我怎样才能在这种情况下强迫失败呢?
答案 0 :(得分:2)
不同的库实现者对应该导致错误的内容和严重程度有不同的看法。
简单的答案是,如果字符串来自用户输入,请在将其提供给任何期望格式正确的字符串的函数之前自行检查。无论如何,这通常是一个好主意。在这种情况下,正则表达式检查会非常简单。