1. Date.compareTo()
java.util.Date提供了在Java中比较两个日期的经典方法compareTo()。
如果两个日期相等,则返回值为0。
如果Date在date参数之后,则返回值大于0。
如果Date在date参数之前,则返回值小于0。
@Test
void testDateCompare() throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = sdf.parse("2009-12-31");
Date date2 = sdf.parse("2019-01-31");
System.out.println("date1 : " + sdf.format(date1));
System.out.println("date2 : " + sdf.format(date2));
if (date1.compareTo(date2) > 0) {
System.out.println("Date1 时间在 Date2 之后");
} else if (date1.compareTo(date2) <0) {
System.out.println("Date1 时间在 Date2 之前");
} else if (date1.compareTo(date2) &#61;&#61; 0) {
System.out.println("Date1 时间与 Date2 相等");
} else {
System.out.println("程序怎么会运行到这里?正常应该不会");
}
}
输出结果&#xff1a;
date1 : 2009-12-31
date2 : 2019-01-31
Date1 时间在 Date2 之前
2. Date.before()&#xff0c;Date.after()和Date.equals()
一种语义上比较友好的方法来比较两个java.util.Date
&#64;Test
void testDateCompare2() throws ParseException {
SimpleDateFormat sdf &#61; new SimpleDateFormat("yyyy-MM-dd");
Date date1 &#61; sdf.parse("2009-12-31");
Date date2 &#61; sdf.parse("2019-01-31");
System.out.println("date1 : " &#43; sdf.format(date1));
System.out.println("date2 : " &#43; sdf.format(date2));
if (date1.after(date2)) {
System.out.println("Date1 时间在 Date2 之后");
}
if (date1.before(date2)) {
System.out.println("Date1 时间在 Date2 之前");
}
if (date1.equals(date2)) {
System.out.println("Date1 时间与 Date2 相等");
}
}
输出结果
date1 : 2009-12-31
date2 : 2019-01-31
Date1 时间在 Date2 之前
3. Calender.before()&#xff0c;Calender.after()和Calender.equals()
使用java.util.Calendar比较两个Date日期
&#64;Test
void testDateCompare3() throws ParseException {
SimpleDateFormat sdf &#61; new SimpleDateFormat("yyyy-MM-dd");
Date date1 &#61; sdf.parse("2009-12-31");
Date date2 &#61; sdf.parse("2019-01-31");
System.out.println("date1 : " &#43; sdf.format(date1));
System.out.println("date2 : " &#43; sdf.format(date2));
Calendar cal1 &#61; Calendar.getInstance();
Calendar cal2 &#61; Calendar.getInstance();
cal1.setTime(date1);
cal2.setTime(date2);
if (cal1.after(cal2)) {
System.out.println("Date1 时间在 Date2 之后");
}
if (cal1.before(cal2)) {
System.out.println("Date1 时间在 Date2 之前");
}
if (cal1.equals(cal2)) {
System.out.println("Date1 时间与 Date2 相等");
}
}
输出结果&#xff1a;
date1 : 2009-12-31
date2 : 2019-01-31
Date1 时间在 Date2 之前
4. Java 8日期比较方法
在Java 8中&#xff0c;可以使用新的isBefore()&#xff0c;isAfter()&#xff0c;isEqual()和compareTo()来比较LocalDate&#xff0c;LocalTime和LocalDateTime。以下示例以比较两个java.time.LocalDate
&#64;Test
void testDateCompare4() throws ParseException {
DateTimeFormatter sdf &#61; DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate date1 &#61; LocalDate.of(2009, 12, 31);
LocalDate date2 &#61; LocalDate.of(2019, 1, 31);
System.out.println("date1 : " &#43; sdf.format(date1));
System.out.println("date2 : " &#43; sdf.format(date2));
System.out.println("Is...");
if (date1.isAfter(date2)) {
System.out.println("Date1 时间在 Date2 之后");
}
if (date1.isBefore(date2)) {
System.out.println("Date1 时间在 Date2 之前");
}
if (date1.isEqual(date2)) {
System.out.println("Date1 时间与 Date2 相等");
}
}
输出结果
date1 : 2009-12-31
date2 : 2019-01-31
Is...
Date1 时间在 Date2 之前
欢迎关注我的博客&#xff0c;里面有很多精品合集
本文转载注明出处(必须带连接&#xff0c;不能只转文字)&#xff1a;字母哥博客。
觉得对您有帮助的话&#xff0c;帮我点赞、分享&#xff01;您的支持是我不竭的创作动力&#xff01; 。另外&#xff0c;笔者最近一段时间输出了如下的精品内容&#xff0c;期待您的关注。