So vergleichen Sie Daten in Java
Nur wenige Beispiele zeigen, wie Sie zwei Daten in Java vergleichen können. Aktualisiert mit Java 8 Beispielen.
1. Date.compareTo()
Eine klassische Methode zum Vergleichen von zweijava.util.Date
in Java.
-
Der Rückgabewert ist 0, wenn beide Daten gleich sind.
-
Der Rückgabewert ist größer als 0, wenn Datum nach dem Datumsargument liegt.
-
Der Rückgabewert ist kleiner als 0, wenn Datum vor dem Datumsargument liegt.
TestDate.java
package com.example.date; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class TestDate { public static void main(String[] args) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date date1 = sdf.parse("2009-12-31"); Date date2 = sdf.parse("2010-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 is after Date2"); } else if (date1.compareTo(date2) < 0) { System.out.println("Date1 is before Date2"); } else if (date1.compareTo(date2) == 0) { System.out.println("Date1 is equal to Date2"); } else { System.out.println("How to get here?"); } } }
Ausgabe
date1 : 2009-12-31 date2 : 2010-01-31 Date1 is before Date2
2. Date.before(), Date.after() and Date.equals()
Eine benutzerfreundlichere Methode zum Vergleichen von zweijava.util.Date
TestDate2.java
package com.example.date; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class TestDate2 { public static void main(String[] args) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date date1 = sdf.parse("2009-12-31"); Date date2 = sdf.parse("2010-01-31"); System.out.println("date1 : " + sdf.format(date1)); System.out.println("date2 : " + sdf.format(date2)); if (date1.after(date2)) { System.out.println("Date1 is after Date2"); } if (date1.before(date2)) { System.out.println("Date1 is before Date2"); } if (date1.equals(date2)) { System.out.println("Date1 is equal Date2"); } } }
Ausgabe
date1 : 2009-12-31 date2 : 2010-01-31 Date1 is before Date2
3. Calender.before(), Calender.after() and Calender.equals()
Beispiel zum Vergleich von zweijava.util.Calendar
TestDate3.java
package com.example.date; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class TestDate3 { public static void main(String[] args) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date date1 = sdf.parse("2009-12-31"); Date date2 = sdf.parse("2010-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 is after Date2"); } if (cal1.before(cal2)) { System.out.println("Date1 is before Date2"); } if (cal1.equals(cal2)) { System.out.println("Date1 is equal Date2"); } } }
Ausgabe
date1 : 2009-12-31 date2 : 2010-01-31 Date1 is before Date2
4. Java 8
In Java 8 können Sie mit den neuen Methoden isBefore (), isAfter (), isEqual () und compareTo () LocalDate, LocalTime und LocalDateTime vergleichen.
Überprüfen Sie das folgende Beispiel, um zweijava.time.LocalDate
zu vergleichen
TestDate4.java
package com.example.date; import java.time.LocalDate; import java.time.format.DateTimeFormatter; public class TestDate4 { public static void main(String[] args) { DateTimeFormatter sdf = DateTimeFormatter.ofPattern("yyyy-MM-dd"); LocalDate date1 = LocalDate.of(2009, 12, 31); LocalDate date2 = LocalDate.of(2010, 01, 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 is after Date2"); } if (date1.isBefore(date2)) { System.out.println("Date1 is before Date2"); } if (date1.isEqual(date2)) { System.out.println("Date1 is equal Date2"); } System.out.println("CompareTo..."); if (date1.compareTo(date2) > 0) { System.out.println("Date1 is after Date2"); } else if (date1.compareTo(date2) < 0) { System.out.println("Date1 is before Date2"); } else if (date1.compareTo(date2) == 0) { System.out.println("Date1 is equal to Date2"); } else { System.out.println("How to get here?"); } } }
Ausgabe
date1 : 2009-12-31 date2 : 2010-01-31 Is... Date1 is before Date2 CompareTo... Date1 is before Date2