Java日期库接受错误日期

Java日期库接受错误日期,java,java.util.date,Java,Java.util.date,我试图处理日期,但遇到了一个问题:java.util.Date库接受文件中的错误日期,例如:2014/99/99。后来它以某种方式转换了它,从2014/99/99我得到了2022/04/09。有没有简单的方法来解决这个问题 代码如下: Date ikalintasNuo = null; static DateFormat df = new SimpleDateFormat("yyyy/MM/dd"); private static Scanner scan; ikalintasNuo = df.

我试图处理日期,但遇到了一个问题:java.util.Date库接受文件中的错误日期,例如:2014/99/99。后来它以某种方式转换了它,从2014/99/99我得到了2022/04/09。有没有简单的方法来解决这个问题

代码如下:

Date ikalintasNuo = null;
static DateFormat df = new SimpleDateFormat("yyyy/MM/dd");
private static Scanner scan;
ikalintasNuo = df.parse(scan.next());
文件输入:2014/99/99
输出:2022/04/09

我想您正在寻找类似的

正如链接的Javadoc所说

指定是否放宽日期/时间分析。通过宽松的解析,解析器可以使用启发式来解释与该对象格式不完全匹配的输入。通过严格解析,输入必须与此对象的格式匹配


java.util.Date库接受错误的日期代码或该代码没有发生。如何转换日期?您可能希望使用SimpleDataFormat,并将lenient设置为false,如SimpleDataFormat.setLenientfalse;。可以找到一些例子。谢谢,你真的救了我的命!
static DateFormat df = new SimpleDateFormat("yyyy/MM/dd");
static {
    df.setLenient(false);
}