Java如何实现日期大小比较呢?
下文笔者讲述使用java代码对日期比较的方法及示例分享,如下所示
日期比较大小的实现思路
实现思路:
方式1:
借助LocalDate中的isBefore或isAfter或isEqual方法
即可实现
方式2:
使用LocalDate中的compareTo方法
方式3:
使用Calender对象的after和before方法
方式4:
转换为长整型,然后进行比较
例
String beginTime = new String("2022-01-09 11:26:33");
String endTime = new String("2033-05-08 12:25:43");
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date beginDate = df.parse(beginTime);
Date endDate = df.parse(endTime);
LocalDate beginDateLoc = LocalDate.of(2022, 11,3);
LocalDate endDateLoc = LocalDate.of(2033, 2, 3);
//LocalDate自带方法isBefore、isAfter和isEqual
if (beginDateLoc.isBefore(endDateLoc)) {
System.out.println("beginDate is before endDate");
}
if (beginDateLoc.isAfter(endDateLoc)) {
System.out.println("beginDate is after endDate");
}
if (beginDateLoc.isEqual(endDateLoc)) {
System.out.println("beginDate is equal to endDate");
}
//LocalDate自带方法compareTo
System.out.println(beginDateLoc.compareTo(endDateLoc));
endDateLoc = LocalDate.of(2022,3, 17);
System.out.println(beginDateLoc.compareTo(endDateLoc));
//当Date等于参数other,则返回0
//当在 other之前,则返回小于0值,否则,返回大于0值
//Date自带方法before和after比较
System.out.println(beginDate.before(endDate));
System.out.println(beginDate.after(endDate));
System.out.println(beginDate.equals(endDate));
//将日期转化成长整型进行比较
/**
* 功能描述:求两个时间相减后的毫秒数。<br/>
* 差格式化时间后,计算 endDt 减 beginDt 的秒数。<br/>
* millDif >0 : endDt > beginDt
*
* @param beginDt 开始时间
* @param endDt 结束时间
* @return Long 时间差,单位:milliseconds
*/
public static Long getMillSub(String beginDt, String endDt, String formatStr) {
long millDif = 0;
if (StringUtils.isBlank(formatStr)) {
formatStr = "yyyy-MM-dd";
}
try {
SimpleDateFormat df = new SimpleDateFormat(formatStr);
Date beginDate = df.parse(beginDt);
Date endDate = df.parse(endDt);
millDif = endDate.getTime() - beginDate.getTime();
} catch (Exception e) {
log.error("日期转换失败,", e);
return null;
}
return millDif;
}
//Calender自带方法before()和after()
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
cal1.setTime(beginDate);
cal2.setTime(endDate);
if (cal1.after(cal2)) {
System.out.println("beginTime is after endTime");
}
if (cal1.before(cal2)) {
System.out.println("beginTime is before endTime");
}
if (cal1.equals(cal2)) {
System.out.println("beginTime is equal to endTime");
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


