boost :: posix_time :: from_iso_string允许错误输入

时间:2012-09-27 03:20:34

标签: c++ boost boost-date-time

奇怪的是,

std::cout << boost::posix_time::from_iso_string("20120927T062299");// 99 seconds!

产生2012-Sep-27 06:23:39,即溢出的秒数包含在下一分钟。这真的是一种预期的行为吗?如果是这样,我怎样才能在这种情况下强迫失败呢?

1 个答案:

答案 0 :(得分:2)

不同的库实现者对应该导致错误的内容和严重程度有不同的看法。

简单的答案是,如果字符串来自用户输入,请在将其提供给任何期望格式正确的字符串的函数之前自行检查。无论如何,这通常是一个好主意。在这种情况下,正则表达式检查会非常简单。