【问题标题】:Date parsing not failing with invalid format日期解析不会因格式无效而失败
【发布时间】:2016-10-13 13:17:10
【问题描述】:

根据我的理解,下面的代码应该会引发解析异常,但事实并非如此。看了文档,但没搞明白。

DateFormat dateFormat = new SimpleDateFormat("yyyyMMdd", Locale.US);
dateFormat.setLenient(false);
dateFormat.parse("20160821_$folder$");

【问题讨论】:

  • 如果使用 Java 8,您可以使用严格的 DateTimeFormatter,并且会在您的示例中引发异常。

标签: java date parsing date-format simpledateformat


【解决方案1】:

javadoc 是这么说的:

从给定字符串的开头解析文本以生成日期。该方法可能不会使用给定字符串的整个文本。

只要找到匹配项,它就会停止进一步扫描,这似乎是这里的情况。

如果您想要严格检查,您可以在此基础上添加RegEx mathing,以防止此类字符串被解析。

【讨论】:

  • 这就解释了。我想知道他们为什么不使用 lenient 标志。但正如记录在案的那样,这不是错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-26
  • 1970-01-01
  • 1970-01-01
  • 2022-11-04
  • 2020-05-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多