【发布时间】:2019-07-16 12:22:18
【问题描述】:
比较不同格式的 2 个日期。两者都在字符串中。
String date = "2019-01-01";
String date1 = "Mar 13 2019 11:33 AM";
但在线程“main”java.text.ParseException: Unparseable date: "Mar 13 2019 11:33 AM" 中作为异常出现错误
// code :
Date date11=new SimpleDateFormat("yyyy-mm-dd").parse(date);
System.out.println(date11);
Date date22=new SimpleDateFormat("mmm dd yyyy HH:MM ").parse(date1);
System.out.println(date22);
if(date22.compareTo(date11) > 0) {
System.out.println("date 22 is greater tehan date 11 ");
}
预期:以相同格式解析 2 个字符串日期,然后进行比较。 实际:解析日期时出现以下错误。
面临的错误:
Exception in thread "main" java.text.ParseException: Unparseable date: "Mar 13 2019 11:33 AM"
at java.text.DateFormat.parse(Unknown Source)
at aaa.basic.main(basic.java:24)
提前致谢。
【问题讨论】:
-
m 代表分钟。 M 代表月份。而 SimpleDateFormat 已过时。停止使用它。使用 java.time 包中的类。
-
您在 AM / PM 的格式字符串中缺少标记
-
我建议你不要使用
SimpleDateFormat和Date。这些类设计不良且过时,尤其是前者,尤其是出了名的麻烦。而是使用LocalDate、LocalDateTime和DateTimeFormatter,均来自java.time, the modern Java date and time API。