【发布时间】:2021-12-06 09:51:18
【问题描述】:
我正在尝试比较这两个日期:
17 Oct. 2019 (08:23)
19 déc. 2019 (21:15)
月份是法语,主要问题是月份。我是否需要为每种类型的月份添加一个 if 语句,以便我可以在适当的月份切换它?例如:
if (MonthValue.equals("oct."){
DateValue.replace("oct.","10");
}
或者有没有更简单的解决方案,因为如果第一个值大于第二个值,我需要检查一个表。
编辑: 我的新代码:
String target1 = "17 oct. 2019 (08:23)";
String target2 = "19 déc. 2019 (21:15)";
DateFormat df = new SimpleDateFormat("dd MMM. YYYY (kk:mm)", Locale.FRENCH);
Date result = df.parse(target1);
Date result2 = df.parse(target2);
System.out.println(result);
System.out.println(result2);
if(result.compareTo(result2) < 0) {
System.out.println("true");
}
else {
System.out.println("false");
}
不工作给出此错误:
java.text.ParseException: Unparseable date: "17 oct. 2019 (08:23)"
【问题讨论】:
-
需要和String比较吗?你为什么不解析到日期然后比较它。
-
@Popeye 您链接的解决方案虽然使用旧类。强烈建议使用 Java SE 8 中引入的 Date & Time API。
-
这个字符串真的有大写的
OinOct.吗?这在我读法语的地方并不常见。 -
我建议你不要使用
SimpleDateFormat和Date。这些类设计不佳且早已过时,尤其是前者,尤其是出了名的麻烦。而是使用来自java.time, the modern Java date and time API 的LocalDateTime和DateTimeFormatter。 -
是的,这就是答案使用@OleV.V.
标签: java date date-comparison