LocalDate计算两个日期相差天数

时间:2021-04-22 22:28:17
import org.apache.commons.lang.StringUtils;

import java.time.LocalDate;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.Date; /**
* LocalDate 工具类
* @author zsw
* @date 2021-03-16 18:43
*/
public class LocalDateUtils { /**
* 计算当前日期与{@code endDate}的间隔天数
*
* @param endDate
* @return 间隔天数
*/
public static long localDateCompare(LocalDate endDate){
return LocalDate.now().until(endDate, ChronoUnit.DAYS);
} /**
* 计算日期{@code startDate}与{@code endDate}的间隔天数
*
* @param startDate
* @param endDate
* @return 间隔天数
*/
public static long localDateCompare(LocalDate startDate, LocalDate endDate){
return startDate.until(endDate, ChronoUnit.DAYS);
} /**
* 字符串转换成日期
* @param strDate 日期字符串
* @param pattern 日期的格式
*/
public static LocalDate stringToLocalDate(String strDate, String pattern) {
if (StringUtils.isBlank(strDate)){
return null;
}
DateTimeFormatter fmt = DateTimeFormatter.ofPattern(pattern);
return LocalDate.parse(strDate, fmt);
} /**
* Date转LocalDate
* @param date
*/
public static LocalDate dateToLocalDate(Date date) {
if(null == date) {
return null;
}
return date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
}
}