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