我正在尝试比较两个日期,这两个日期都已经是字符串值,格式为"2018-01-01“。我想比较基于年和月的日期,如果它们相等,我想打印出结果。
我已经设法以字符串形式打印出了两个日期相等的结果,但我承认我可能必须将这两个字符串转换为日期或LocalDate格式。我尝试过寻找答案,但都没有真正解决我的问题,而且大多数都参考了SQL,而我正在寻找基于Java的解决方案。
String Date1 = "2018-01-01"
String Date2 = "2018-01-12"
if(Date1.trim().equals(Date2.trim())){
System.out.println("Both dates are equal to one another")
}
如果日期不完全匹配,我希望仅基于年和月来比较日期。这可能需要将字符串解析为日期或LocalDate格式。问题是我不太明白该怎么做。我也不想改变字符串中的值,所以像cal.setTime();这样的东西不会像我想要的那样工作。
发布于 2019-05-05 00:50:17
YearMonth::equals
您可以使用Java8和更高版本中的YearMonth
类:
public static void main(String[] args) {
String date1 = "2018-02-04";
String date2 = "2018-02-05";
LocalDate localDate1 = LocalDate.parse(date1);
LocalDate localDate2 = LocalDate.parse(date2);
if(YearMonth.from(localDate1).equals(YearMonth.from(localDate2))) {
System.out.println("Year and month are the same");
}
}
https://stackoverflow.com/questions/55984661
复制相似问题