如何在Java 8中判断一个日期是否早于或晚于另一个日期?
Java 的 `java.time` 包提供了用于日期、时间、实例和持续时间的 API。它提供了各种类,例如 Clock、LocalDate、LocalDateTime、LocalTime、MonthDay、Year、YearMonth 等。与之前的替代方案相比,使用此包中的类可以更简单地获取与日期和时间相关的详细信息。
Java.time.LocalDate - 此类表示 ISO-8601 日历系统中不包含时区的日期对象。
此类的 `now()` 方法从系统时钟获取当前日期。
`isAfter()` 方法接受 `ChronoLocalDate` 类的对象(表示不包含时区的日期或时间),将给定日期与当前日期进行比较,如果当前日期晚于给定日期,则返回 true(否则返回 false)。
`isBefore()` 方法接受 `ChronoLocalDate` 类的对象(表示不包含时区的日期或时间),将给定日期与当前日期进行比较,如果当前日期早于给定日期,则返回 true(否则返回 false)。
`isEqual()` 方法接受 `ChronoLocalDate` 类的对象(表示不包含时区的日期或时间),将给定日期与当前日期进行比较,如果当前日期等于给定日期,则返回 true(否则返回 false)。
示例
以下示例从用户处接收日期,并使用上述三种方法将其与当前日期进行比较。
import java.time.LocalDate; import java.util.Scanner; public class CurentTime { 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 given date value LocalDate givenDate = LocalDate.of(year, month, day); //Getting the current date LocalDate currentDate = LocalDate.now(); if(currentDate.isAfter(givenDate)) { System.out.println("Current date succeeds the given date "); }else if(currentDate.isBefore(givenDate)) { System.out.println("Current date preceds the given date "); }else if(currentDate.isEqual(givenDate)) { System.out.println("Current date is equal to the given date "); } } }
输出 1
Enter the year: 2019 Enter the month: 06 Enter the day: 25 Current date succeeds the given date
输出 2
Enter the year: 2020 Enter the month: 10 Enter the day: 2 Current date precedes the given date
输出 3
Enter the year: 2019 Enter the month: 07 Enter the day: 25 Current date is equal to the given date
广告