比较日期以查找匹配的年份和月份

时间:2019-05-04 16:38:34

标签: java date

我正在尝试以“ 2018-01-01”的形式比较两个日期,两个日期都已经是String值。我想比较基于年和月的日期,如果它们相等,我想打印出一个结果。

当两个日期彼此相等时,我设法以String形式打印出结果,但是我承认我可能必须将两个String转换为Date或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")
}

如果日期不完全匹配,我想只根据年份和月份比较日期。这可能需要将字符串解析为Date或LocalDate格式。问题是我不完全了解该怎么做。我也不想更改字符串中的值,所以像cal.setTime();一样。不能按我想要的方式工作。

1 个答案:

答案 0 :(得分:3)

YearMonth::equals

您可以使用Java 8及更高版本中的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");
        }
}