This question already has answers here:
java - compare two date values for the month and year
                                
                                    (2个答案)
                                
                        
                12个月前关闭。
            
        

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

当两个日期以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();一样。不会像我想要的那样工作。

最佳答案

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");
        }
}

关于java - 比较日期以查找匹配的年月,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55984661/

10-16 23:31
查看更多