错误的时间被SimpleDateFormat转化为正确时间

问题:

2023年的2月29日被自动转化为了3月1日
错误的时间被SimpleDateFormat转化为正确时间_第1张图片
错误的时间被SimpleDateFormat转化为正确时间_第2张图片

解决

关闭宽松匹配:simpleDateFormat.setLenient(false);

事例

代码

public static void main(String[] args) throws ParseException {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        Date parse = simpleDateFormat.parse("2023-13-15");
        System.out.println(simpleDateFormat.format(parse));
        System.out.println("------------------------------");
        simpleDateFormat.setLenient(false);
        Date parse2 = simpleDateFormat.parse("2023-13-15");
        System.out.println(simpleDateFormat.format(parse2));

    }

结果

2024-01-15
------------------------------
Exception in thread "main" java.text.ParseException: Unparseable date: "2023-13-15"
	at java.text.DateFormat.parse(DateFormat.java:366)
	at com.hx.backmarket.insurance.utils.rule.batchapply.IssueDateRule.main(IssueDateRule.java:49)

你可能感兴趣的:(工作日志,java)