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"); }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。