一、前言

我们在开发过程中,必不可少的就是对字符串日期的操作,特别是求相差天数。搜了一下大部分都是使用Calendar来进行计算的,今天我们来介绍两种比较好的方法。

  • hutool
  • jkd8新特性LocalDateTime

二、Hutool实现

1. 导入maven

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.7.18</version>
</dependency>

2. 实现方法

public static long compareTime(String dateStr1,String dateStr2){

    Date date1 = DateUtil.parse(dateStr1);
    
    Date date2 = DateUtil.parse(dateStr2);

    return DateUtil.between(date1, date2, DateUnit.DAY);

}

3. 测试

public static void main(String[] args) {
	String dateStr1 = "2021-01-01";
    String dateStr2 = "2021-01-05";
    long compareTime = compareTime(dateStr1, dateStr2);//4
}

三、jkd8新特性LocalDateTime实现

1. API了解

对于LocalDate,只有精度大于或等于日的加减,如年、月、日;
对于LocalTime,只有精度小于或等于时的加减,如时、分、秒、纳秒;
对于LocalDateTime,则可以进行任意精度的时间相加减;

2. 测试

	String dateStr1 = "2021-01-01";
  	String dateStr2 = "2021-01-05";

  	LocalDate parse = LocalDate.parse(dateStr1);
  	LocalDate parse1 = LocalDate.parse(dateStr2);
  	long between = ChronoUnit.DAYS.between(parse, parse1);//4

四、总结

这样我们使用两种比较简单的方式实现了计算两个字符串日期的相差天数,觉得有用收藏,下次方便查看哦!!

Q.E.D.