【发布时间】:2021-09-27 08:38:45
【问题描述】:
我正在尝试将字符串日期值解析为日期对象。
如果提供的日期格式不正确,则必须抛出错误。
尝试使用SimpleDateFormat 实现此目的,但它没有按预期工作。
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
sdf.setLenient(false);
Date d = sdf.parse("01/01/2021anything");
System.out.println(d);
对于上面的代码,我期望得到Fri Jan 01 00:00:00 GMT 2021 的输出ParseException。有人可以解释为什么会发生这种情况以及我如何使用SimpleDateFormat 验证上述日期。感谢您的努力。
【问题讨论】:
-
The JavaDocs of
SimpleDateFormatstate 解析不一定使用直到字符串末尾的所有字符。我认为这就是这种行为的原因。 -
我建议你不要使用
SimpleDateFormat和Date。这些类设计不良且过时,尤其是前者,尤其是出了名的麻烦。而是使用来自java.time, the modern Java date and time API 的LocalDate和DateTimeFormatter。
标签: java simpledateformat