| | |
| | | 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; |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | } |