如何在Java 8中检查两个日期是否相等?

Java的java.time包提供日期,时间,实例和持续时间的API。它提供了各种类,例如Clock,LocalDate,LocalDateTime,LocalTime,MonthDay,Year,YearMonth等。与以前的替代方法相比,使用此软件包的类,您可以以更简单的方式获取与日期和时间相关的详细信息。

Java.time.LocalDate-此类表示ISO- 8601日历系统中不带时区的日期对象now()此类的方法从系统时钟获取当前日期。

java.time.LocalDate类的of()方法接受三个整数参数,分别表示和年,年中的月份,月中的某天,并从给定的详细信息中返回LocalDate对象的实例。 

java.time.LocalDatenow()方法从系统时钟获取并返回当前日期。 

 java.time.LocalDate类的equals()方法接受一个对象(表示LocalDate)并将其与当前LocalDate对象进行比较,如果两者相等,则此方法返回true,否则返回false。如果传递给此方法的对象不是LocalDate类型,则此方法返回false。 

示例

以下Java示例从用户读取日期值并构造一个LocalDate实例。检索当前日期并比较这两个值并打印结果。

import java.time.LocalDate;
import java.util.Scanner;
public class LocalDateJava8 {
   public static void main(String args[]) {
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter the year: ");
      int year = sc.nextInt();
      System.out.println("Enter the month: ");
      int month = sc.nextInt();
      System.out.println("Enter the day: ");
      int day = sc.nextInt();
      //获取当前日期值
      LocalDate givenDate = LocalDate.of(year, month, day);
      System.out.println("Date: "+givenDate);
      //检索当前日期
      LocalDate currentDate = LocalDate.now();
      //比较两个值
      boolean bool = givenDate.equals(currentDate);
      if(bool) {
         System.out.println("Given date is equal to the current date ");
      }else {
         System.out.println("Given date is not equal to the current date ");
      }
   }
}

输出结果

Enter the year:
2019
Enter the month:
07
Enter the day:
24
Date: 2019-07-24
Given date is equal to the current date