如何在 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.LocalDate 的 `now()` 方法获取并返回系统时钟中的当前日期。

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();
      //Getting the current date value
      LocalDate givenDate = LocalDate.of(year, month, day);
      System.out.println("Date: "+givenDate);
      //Retrieving the current date
      LocalDate currentDate = LocalDate.now();
      //Comparing both values
      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

更新于:2019年8月7日

1K+ 次浏览

开启你的职业生涯

通过完成课程获得认证

开始学习
广告