package com.casic.missiles.utils; import java.time.Duration; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.format.DateTimeFormatter; import java.time.format.DateTimeParseException; /** * @Description: 日期辅助工具类 * @Author: wangpeng * @Date: 2023/6/14 10:25 */ public class DateUtils { private static final String DATE_PATTERN = "yyyy-MM-dd"; private static final String DATETIME_PATTERN = "yyyy-MM-dd HH:mm:ss"; /** * 获取两个日期相差的天数 * @param startDate * @param endDate * @return */ public static long subDaysByDateTime(String startDate, String endDate) { long sub; try { DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(DATETIME_PATTERN); LocalDateTime start = LocalDateTime.parse(startDate, dateTimeFormatter); LocalDateTime end = LocalDateTime.parse(endDate, dateTimeFormatter); sub = Duration.between(start, end).toDays(); } catch (DateTimeParseException e) { sub = -1; } return sub; } /** * 获取两个日期相差的天数 * @param startDate * @param endDate * @return */ public static long subDaysByDate(String startDate, String endDate) { long sub; try { DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(DATE_PATTERN); LocalDate start = LocalDate.parse(startDate, dateTimeFormatter); LocalDate end = LocalDate.parse(endDate, dateTimeFormatter); sub = Duration.between(LocalDateTime.of(start, LocalTime.of(0,0,0)), LocalDateTime.of(end, LocalTime.of(0,0,0))).toDays(); } catch (DateTimeParseException e) { sub = -1; } return sub; } }