|  |  |  | 
|---|
|  |  |  | date = date.substring(0,i); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //TimeZone tz = TimeZone.getTimeZone("GMT-01"); | 
|---|
|  |  |  | //TimeZone tz = TimeZone.getTimeZone("GMT-01");2024-10-21T10:40:04+08:00 | 
|---|
|  |  |  | DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS"); | 
|---|
|  |  |  | //        DateFormat df = new SimpleDateFormat("2023-12-08 T 09:25:54.698+08:00"); | 
|---|
|  |  |  | df.setTimeZone(tz); | 
|---|
|  |  |  | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | return (date == null) ? new Date().toString() : date.toString(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 获取X月份之前的月份数 | 
|---|
|  |  |  | * @param currentDate | 
|---|
|  |  |  | * @param month | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public static List<String> getBeforMonth(Date currentDate , Integer month) { | 
|---|
|  |  |  | SimpleDateFormat sdfYear = new SimpleDateFormat("yyyy"); | 
|---|
|  |  |  | SimpleDateFormat sdfMonth = new SimpleDateFormat("MM"); | 
|---|
|  |  |  | int currentYear = Integer.parseInt(sdfYear.format(currentDate)); | 
|---|
|  |  |  | int currentMonth = Integer.parseInt(sdfMonth.format(currentDate)); | 
|---|
|  |  |  | List<String> list = new ArrayList<>(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | for (int i = 0; i < month; i++) { | 
|---|
|  |  |  | int tempYear = currentYear; | 
|---|
|  |  |  | int tempMonth = currentMonth - i; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (tempMonth <= 0) { | 
|---|
|  |  |  | tempYear--; | 
|---|
|  |  |  | tempMonth += 12; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | list.add(tempYear +"-" + StringUtils.leftPad(Integer.toString(tempMonth),2,"0")); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return list; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static List<String> getBeforDays(Date currentDate,Integer days){ | 
|---|
|  |  |  | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); | 
|---|
|  |  |  | Calendar calendar = Calendar.getInstance(); | 
|---|
|  |  |  | calendar.setTime(currentDate); | 
|---|
|  |  |  | Date endDate = currentDate; // 获取当前日期 | 
|---|
|  |  |  | calendar.add(Calendar.DAY_OF_YEAR, -days); // 往前推7天 | 
|---|
|  |  |  | Date startDate = calendar.getTime(); // 获取推算后的日期 | 
|---|
|  |  |  | List<String> list = new ArrayList<>(); | 
|---|
|  |  |  | while (startDate.before(endDate)) { | 
|---|
|  |  |  | calendar.add(Calendar.DAY_OF_YEAR, 1); // 获取下一天日期 | 
|---|
|  |  |  | startDate = calendar.getTime(); | 
|---|
|  |  |  | list.add(DateUtil.dateToString(startDate,"yyyy-MM-dd")); | 
|---|
|  |  |  | System.out.println(DateUtil.dateToString(startDate,"yyyy-MM-dd")); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return list; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return length; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 得到X分钟后的时间(时间格式) | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param date | 
|---|
|  |  |  | * @param minute | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public static Date getXMinuteAfterDate(Date date, int minute) { | 
|---|
|  |  |  | Calendar now = Calendar.getInstance(); | 
|---|
|  |  |  | now.setTime(date); | 
|---|
|  |  |  | now.set(Calendar.MINUTE, now.get(Calendar.MINUTE) + minute); | 
|---|
|  |  |  | return now.getTime(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | 
|---|
|  |  |  | //            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.getBeforDays(new Date(),7); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | DateUtil.checkDateInterval( startTime.toInstant() | 
|---|
|  |  |  | .atZone(ZoneId.systemDefault()) | 
|---|
|  |  |  | .toLocalDateTime(), endTime.toInstant() | 
|---|
|  |  |  | .atZone(ZoneId.systemDefault()) | 
|---|
|  |  |  | .toLocalDateTime(),intervalTime); | 
|---|
|  |  |  | //            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(); | 
|---|
|  |  |  | 
|---|
|  |  |  | return DateToStr(date, "yyyyMMdd"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static String afterDateHourToStr(Integer hour){ | 
|---|
|  |  |  | Date date = new Date(); | 
|---|
|  |  |  | Long l = date.getTime()+1000*60*60*hour; | 
|---|
|  |  |  | date.setTime(l); | 
|---|
|  |  |  | return DateToStr(date, "yyyyMMdd"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static String beforeDateToStr(Integer days){ | 
|---|
|  |  |  | Date date = new Date(); | 
|---|
|  |  |  | Long l = date.getTime()-1000*60*60*24*days; | 
|---|