java - 当最后一个字符为非数字时 SimpleDateFormat 无法引发异常

标签 java date format

为什么这段代码不会引发“ParseException”?

DateFormat formatter = new SimpleDateFormat("dd/mm/yyyy");
try {
     String date = "01/01/200'";
     formatter.parse(date);
} catch (ParseException ex) {
     throw new ParseException("Formato de fecha inválido",0);
}

请向我解释一下,我对此感到困惑。并注意简单的引用 '

最佳答案

因为这是应该做的。 如果您检查docs on DateFormat它说明了参数。

source - 应解析其开头的字符串。

如果您想限制格式,则必须使用正则表达式。

另请检查 SimpleDateformat 的规则关于年份:

对于解析,如果模式字母的数量超过 2,则无论位数多少,年份都会按字面解释。因此,使用模式“MM/dd/yyyy”,“01/11/12”解析为公元 12 年 1 月 11 日。

关于java - 当最后一个字符为非数字时 SimpleDateFormat 无法引发异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8058119/

相关文章:

jquery - Jqgrid货币格式

python - Twisted 的文档字符串中这些格式的含义是什么?

java - Swing 更新谜题

javascript - 无法从 Json 获取修改日期

mysql - 如何对开始/结束数据的总小时数/天进行分组(每天多个条目,一些跨越午夜)?

java - 将 IST/IST 时间转换为 UTC 时间

Python将变长列表写入txt文件

java - 如何让用户使用 vaadin 文件下载器下载 zip 文件

java - 如何提取带有文本的 .doc 文件中的章节号?

python - 尝试将日期和时间记录到 sqlite3