Home >Java >javaTutorial >How to compare date and time in java? 4 methods introduced

How to compare date and time in java? 4 methods introduced

青灯夜游
青灯夜游forward
2020-07-27 17:32:154683browse

How to compare date and time in java? 4 methods introduced

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.CalendarCompare 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!

Statement:
This article is reproduced at:segmentfault.com. If there is any infringement, please contact admin@php.cn delete