我正在尝试以“ 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();一样。不能按我想要的方式工作。
答案 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");
}
}