Java Date before和after 的使用

本文详细介绍了日期比较的三种核心方法:after、before以及不相等的校验方式。通过具体示例,阐述了如何判断一个日期是否晚于、早于另一个日期,以及两个日期是否严格不相等,为日期操作提供了实用的指导。

1、date1.after(date),当date1大于date2时,返回true,当小于等于时,返回false;
2、date1.before(date),当date1小于date2时,返回true,当大于等于时,返回false;
3、若要校验date2必须比date1小,且不能相等时,使用 !date1.after(date2);

参考原文章
添加链接描述

Java 中,`before` `after` 方法通常用于比较日期时间,判断两个时间点的先后顺序。不同类中的 `before` `after` 方法有不同的使用场景功能: - **`java.util.Date` 类**:`Date` 类的 `after` 方法用于判断当前日期是否在指定日期之后;`before` 方法用于判断当前日期是否在指定日期之前。例如: ```java import java.util.Date; public class DateComparison { public static void main(String[] args) { Date date1 = new Date(); Date date2 = new Date(System.currentTimeMillis() + 1000); boolean isAfter = date2.after(date1); boolean isBefore = date1.before(date2); System.out.println("date2 在 date1 之后: " + isAfter); System.out.println("date1 在 date2 之前: " + isBefore); } } ``` - **`java.time.LocalDate` 类**:`LocalDate` 类的 `isAfter` 方法判断当前日期是否在指定日期之后;`isBefore` 方法判断当前日期是否在指定日期之前。例如: ```java import java.time.LocalDate; public class LocalDateComparison { public static void main(String[] args) { LocalDate date1 = LocalDate.of(2023, 10, 1); LocalDate date2 = LocalDate.of(2023, 10, 2); boolean isAfter = date2.isAfter(date1); boolean isBefore = date1.isBefore(date2); System.out.println("date2 在 date1 之后: " + isAfter); System.out.println("date1 在 date2 之前: " + isBefore); } } ``` - **`java.util.Calendar` 类**:`Calendar` 类的 `after` 方法判断当前 `Calendar` 对象表示的时间是否在指定 `Calendar` 对象表示的时间之后;`before` 方法判断当前 `Calendar` 对象表示的时间是否在指定 `Calendar` 对象表示的时间之前。不过,该类的 `before` `after` 方法存在缺陷,在比较同样的日期时可能会出现不符合预期的结果 [^3]。例如: ```java import java.util.Calendar; public class CalendarComparison { public static void main(String[] args) { Calendar calendar1 = Calendar.getInstance(); Calendar calendar2 = Calendar.getInstance(); calendar1.set(2023, 9, 1); calendar2.set(2023, 9, 2); boolean isAfter = calendar2.after(calendar1); boolean isBefore = calendar1.before(calendar2); System.out.println("calendar2 在 calendar1 之后: " + isAfter); System.out.println("calendar1 在 calendar2 之前: " + isBefore); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值