1. Date.compareTo()
java.util.Date
provides The classic way to compare two dates in Java is compareTo().
1. If the two dates are equal, the return value is 0.
2. If Date is after the date parameter, the return value is greater than 0.
3. If Date is before the date parameter, the return value is less than 0.
@Testvoid 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) == 0) { System.out.println("Date1 时间与 Date2 相等"); } else { System.out.println("程序怎么会运行到这里?正常应该不会"); } }
Output results:
date1 : 2009-12-31date2 : 2019-01-31Date1 时间在 Date2 之前
2. Date.before(), Date.after() and Date.equals()
A semantically friendly way to compare two java.util.Date
@Testvoid testDateCompare2() 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.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 相等"); } }
Output result
date1 : 2009-12-31date2 : 2019-01-31Date1 时间在 Date2 之前
3 .Calender.before(), Calender.after() and Calender.equals()
Usingjava.util.Calendar
Compare two Date dates
@Testvoid testDateCompare3() 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)); Calendar cal1 = Calendar.getInstance(); Calendar cal2 = 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 相等"); } }
Output result:
date1 : 2009-12-31 date2 : 2019-01-31 Date1 时间在 Date2 之前
4. Java 8 date comparison method
In Java 8, you can use the new isBefore( ), isAfter(), isEqual() and compareTo() to compare LocalDate, LocalTime and LocalDateTime. The following example compares two java.time.LocalDate
@Testvoid testDateCompare4() throws ParseException { DateTimeFormatter sdf = DateTimeFormatter.ofPattern("yyyy-MM-dd"); LocalDate date1 = LocalDate.of(2009, 12, 31); LocalDate date2 = LocalDate.of(2019, 1, 31); System.out.println("date1 : " + sdf.format(date1)); System.out.println("date2 : " + 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 相等"); } }
output results
date1 : 2009-12-31date2 : 2019-01-31Is...Date1 时间在 Date2 之前
Recommended tutorial: "java tutorial"
The above is the detailed content of How to compare date and time in java? 4 methods introduced. For more information, please follow other related articles on the PHP Chinese website!