|  |  | 
 |  |  | import java.text.ParseException; | 
 |  |  | import java.text.SimpleDateFormat; | 
 |  |  | import java.time.*; | 
 |  |  | import java.time.format.DateTimeFormatter; | 
 |  |  | import java.time.temporal.ChronoUnit; | 
 |  |  | import java.time.temporal.TemporalAdjusters; | 
 |  |  | import java.util.*; | 
 |  |  | import java.util.Date; | 
 |  |  |  | 
 |  |  | import cn.hutool.core.date.DateUnit; | 
 |  |  | import org.apache.commons.lang3.RandomStringUtils; | 
 |  |  | import org.apache.commons.lang3.StringUtils; | 
 |  |  |  | 
 |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public static int compareDate(String format, String str1, Date date2) { | 
 |  |  |  | 
 |  |  |         Date date1 = null; | 
 |  |  |         try { | 
 |  |  |             date1 = fromStringToDate(format, str1); | 
 |  |  |         } catch (ParseException e) { | 
 |  |  |         } catch (Exception e) { | 
 |  |  |             // TODO 自动生成 catch 块 | 
 |  |  |             e.printStackTrace(); | 
 |  |  |         } | 
 |  |  | 
 |  |  |             return new Timestamp(System.currentTimeMillis()); | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |     public static Date getDateFromString2(String strDate) { | 
 |  |  |         if (StringUtils.isEmpty(strDate)) { | 
 |  |  |           return  null; | 
 |  |  |         } | 
 |  |  |         try { | 
 |  |  |             return sdfLongTimePlus.parse(strDate); | 
 |  |  |         } catch (Exception ex) { | 
 |  |  |             return null; | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     // ----------------------------------------------------------------------- | 
 |  |  | 
 |  |  |  | 
 |  |  |             stringDate = getFomartDate(new Date(now), formate); | 
 |  |  |  | 
 |  |  |         } catch (ParseException e) { | 
 |  |  |         } catch (Exception e) { | 
 |  |  |  | 
 |  |  |             e.printStackTrace(); | 
 |  |  |         } | 
 |  |  | 
 |  |  |             long now = date.getTime() + (long) Integer.parseInt(days) * DAY_IN_MILLISECOND; | 
 |  |  |  | 
 |  |  |             date = new Date(now); | 
 |  |  |  | 
 |  |  |         } catch (ParseException e) { | 
 |  |  |         } catch (Exception e) { | 
 |  |  |  | 
 |  |  |             e.printStackTrace(); | 
 |  |  |         } | 
 |  |  | 
 |  |  |      * | 
 |  |  |      * 字符串形式转化为Date类型 String类型按照format格式转为Date类型 | 
 |  |  |      **/ | 
 |  |  |     public static Date fromStringToDate(String format, String dateTime) throws ParseException { | 
 |  |  |     public static Date fromStringToDate(String format, String dateTime)  { | 
 |  |  |         Date date = null; | 
 |  |  |         SimpleDateFormat sdf = new SimpleDateFormat(format); | 
 |  |  |         date = sdf.parse(dateTime); | 
 |  |  |         try { | 
 |  |  |  | 
 |  |  |             SimpleDateFormat sdf = new SimpleDateFormat(format); | 
 |  |  |             date = sdf.parse(dateTime); | 
 |  |  |         }catch (Exception e){ | 
 |  |  |  | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         return date; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | 
 |  |  |  | 
 |  |  |     public static void main(String[] args) { | 
 |  |  |         try { | 
 |  |  |             Date date = getISO8601DateByStr("2024-04-15T07:46:36.014+08:00"); | 
 |  |  |             Date date1 = getISO8601DateByStr("2024-06-14T08:46:36.014+08:00"); | 
 |  |  |             System.out.println(daysBetweenDates11(date1,date)+1); | 
 |  |  | //            Date date = getISO8601DateByStr("2024-04-15T07:46:36.014+08:00"); | 
 |  |  | //            Date date1 = getISO8601DateByStr("2024-06-14T08:46:36.014+08:00"); | 
 |  |  | //            System.out.println(DateUtil.afterMinutesDate(-5)); | 
 |  |  |  | 
 |  |  |  | 
 |  |  |             Date startTime = DateUtil.StringToDate("2024-05-01 08:00:00" ,"yyyy-MM-dd HH:mm:ss"); | 
 |  |  |             Date endTime = DateUtil.StringToDate("2024-05-01 17:00:00" ,"yyyy-MM-dd HH:mm:ss"); | 
 |  |  |             Long intervalTime = 35L; | 
 |  |  |  | 
 |  |  |  | 
 |  |  |             DateUtil.checkDateInterval( startTime.toInstant() | 
 |  |  |                     .atZone(ZoneId.systemDefault()) | 
 |  |  |                     .toLocalDateTime(), endTime.toInstant() | 
 |  |  |                     .atZone(ZoneId.systemDefault()) | 
 |  |  |                     .toLocalDateTime(),intervalTime); | 
 |  |  |  | 
 |  |  |         } catch (Exception ex) { | 
 |  |  |             ex.printStackTrace(); | 
 |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * X 分钟后时间 | 
 |  |  |      * @param minutes | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     public static Date afterMinutesDate(Date date,Integer minutes){ | 
 |  |  |         Calendar cal = Calendar.getInstance(); | 
 |  |  |         cal.setTime(date); | 
 |  |  |         cal.add(Calendar.MINUTE,minutes); | 
 |  |  |         return cal.getTime(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * LocalDateTime to date | 
 |  |  |      * @param now | 
 |  |  |      * @return | 
 |  |  | 
 |  |  |         System.out.println(time); | 
 |  |  |         return time; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     public static List<LocalDateTime> checkDateInterval(LocalDateTime localStartTime,LocalDateTime localEndTime,Long interval){ | 
 |  |  |         List<LocalDateTime> segments = new ArrayList<>(); | 
 |  |  |         LocalDateTime current = localStartTime; | 
 |  |  |         while (current.isBefore(localEndTime)) { | 
 |  |  |             segments.add(current); | 
 |  |  |             current = current.plus(interval, ChronoUnit.MINUTES); | 
 |  |  |         } | 
 |  |  |         return segments; | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  | } |