boost::p osix_time::from_iso_string 允许错误的输入

boost::posix_time::from_iso_string allows erroneous input

本文关键字:错误 许错误 输入 string osix time from boost iso      更新时间:2023-10-16

奇怪的是,

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

产生2012-Sep-27 06:23:39,即飞过秒数包裹到下一分钟。这真的是预期的行为吗?如果是这样,在这种情况下,我如何强制功能失败?

不同的库实现者对导致错误的原因和严重性有不同的想法。

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