1. Date.com pareTo ()
Java.util.date provides the classic method compareTo () for comparing two dates in Java.
- If two dates are equal, the return value is 0.
- If Date follows the Date argument, the return value is greater than 0.
- If Date precedes the Date argument, the return value is less than 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 time after date2 "); } else if (date1.compareTo(date2) < 0) {system.out.println ("Date1 time before date2 "); } else if (date1.compareTo(date2) == 0) {system.out.println ("Date1 time equals date2 "); } else {system.out.println (" How did the program run here? Normally not "); }}Copy the code
Output result:
Date1:2009-12-31 date2:2019-01-31 date1 The time is earlier than date2Copy the code
2. Date.before (), date.after () and date.equals ()
A semantically friendly way to compare two java.util.dates
@Test void 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 after date2 "); } if (date1.before(date2)) {system.out.println (" date1 before date2 "); } if (date1.equals(date2)) {system.out.println (" date1 equals date2 "); }}Copy the code
The output
Date1:2009-12-31 date2:2019-01-31 date1 The time is earlier than date2Copy the code
3. Calender.before (), calender.after () and calender.equals ()
Compare two Date dates using java.util.Calendar
@Test void 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 time after Date2 "); } if (cal1.before(cal2)) {system.out.println ("Date1 time before Date2 "); } if (cal1.equals(cal2)) {system.out.println ("Date1 equals Date2 "); }}Copy the code
Output result:
Date1:2009-12-31 date2:2019-01-31 date1 The time is earlier than date2Copy the code
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.localdates
@Test void 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 time after date2 "); } if (date1.isbefore (date2)) {system.out.println (" date1 before date2 "); } if (date1.isEqual(date2)) {system.out.println (" date1 equals date2 "); }}Copy the code
The output
date1 : 2009-12-31 date2 : 2019-01-31 Is... Date1 Indicates the time before Date2Copy the code
Welcome to my blog, where there are many fine collections
- This article is reprinted with a credit (must be accompanied by a link, not only the text) : Antetokounmpo blog.
Feel helpful to you, help me like, share! Your support is my inexhaustible creative power! . In addition, the author recently a period of time output as follows boutique content, looking forward to your attention.
- Spring Boot2.0 by Hand
- Spring Security- JWT-OAUTH2
- RBAC Authority Management System for Actual Combat Front-end and Back-end Separation
- “Actual SpringCloud Micro-service from Bronze to King”
- VUE Series