|  |  | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 获取2个时间之间的分钟数 | 
 |  |  |      * @param fromDate | 
 |  |  |      * @param toDate | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     public static long getBetweenMin(Date fromDate, Date toDate) { | 
 |  |  |         long m_intervalday = 0;// 初始化时间间隔的值为0 | 
 |  |  |         // 使用的时间格式为yyyy-MM-dd | 
 |  |  |         try { | 
 |  |  |             m_intervalday = toDate.getTime() - fromDate.getTime();// 计算所得为微秒数 | 
 |  |  |             m_intervalday = m_intervalday / 1000 / 60;// 计算所得的分钟 | 
 |  |  |  | 
 |  |  |             return m_intervalday; | 
 |  |  |         } catch (Exception e) { | 
 |  |  |             return Integer.MIN_VALUE; | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * @author Pablo Descrption:ȡ�õ�ǰ����getgetg get Date format | 
 |  |  |      *         Example:2008.03.15 | 
 |  |  | 
 |  |  |         } catch (Exception e) { | 
 |  |  |             throw e; | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |     public static String getTimeStrBySecond(Long seconds)  { | 
 |  |  |         String returnTime ="0时0分0秒"; | 
 |  |  |         long longHour = 0; | 
 |  |  |         long longMinu = 0; | 
 |  |  |         long longSec =seconds ==null?0:seconds; | 
 |  |  |         try { | 
 |  |  |             if (longSec == 0) { | 
 |  |  |                 returnTime = "0时0分0秒"; | 
 |  |  |                 return returnTime; | 
 |  |  |             } | 
 |  |  |             longHour = longSec / 3600; // 取得小时数 | 
 |  |  |             longSec = longSec % 3600; // 取得余下的秒 | 
 |  |  |             longMinu = longSec / 60; // 取得分数 | 
 |  |  |             longSec = longSec % 60; // 取得余下的秒 | 
 |  |  |             returnTime = longHour + "时" + longMinu + "分" + longSec + "秒"; | 
 |  |  |             return returnTime; | 
 |  |  |         } catch (Exception e) { | 
 |  |  |               e.printStackTrace(); | 
 |  |  |         } | 
 |  |  |         return returnTime; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  | 
 |  |  |     } | 
 |  |  |     public static Date getFirstThisYearDate() { | 
 |  |  |         try { | 
 |  |  |             return sdfShort.parse( getNowShortDate().substring(0, 4) + "0101"); | 
 |  |  |             return sdfLong.parse( getNowShortDate().substring(0, 4) + "-01-01"); | 
 |  |  |         } catch (Exception e) { | 
 |  |  |             return null; | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public static Date getFirstThisMonthDate() { | 
 |  |  |         try { | 
 |  |  |             return sdfLong.parse( getNowFormateDate().substring(0, 7) + "-01"); | 
 |  |  |         } catch (Exception e) { | 
 |  |  |             return null; | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     public static String getFirstDayCurrentMonth() { | 
 |  |  |         try { | 
 |  |  |             return getDateLong(new Date()).substring(0, 7) + "-01"; | 
 |  |  | 
 |  |  |             return null; | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |     public static Date getDateFromShortString(String strDate) { | 
 |  |  |         if (StringUtils.isEmpty(strDate)) { | 
 |  |  |           return  null; | 
 |  |  |         } | 
 |  |  |         try { | 
 |  |  |             return sdfLong.parse(strDate); | 
 |  |  |         } catch (Exception ex) { | 
 |  |  |             return null; | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     // ----------------------------------------------------------------------- | 
 |  |  | 
 |  |  | //            Date date1 = getISO8601DateByStr("2024-06-14T08:46:36.014+08:00"); | 
 |  |  | //            System.out.println(DateUtil.afterMinutesDate(-5)); | 
 |  |  |  | 
 |  |  |             System.out.println(DateUtil.getFirstThisMonthDate()); | 
 |  |  |  | 
 |  |  |             List<Date> list =getThisMonthDateList(); | 
 |  |  |             for(Date d :list){ | 
 |  |  |                 System.out.println(getPlusTime2(d)); | 
 |  |  |             } | 
 |  |  |             List<Date> list1 =getThisYearMonthList(); | 
 |  |  |             for(Date d :list1){ | 
 |  |  |                 System.out.println(getPlusTime2(d)); | 
 |  |  |             } | 
 |  |  | //            System.out.println(getPlusTime2(DateUtil.addMonthToDate(new Date(),-1))); | 
 |  |  | //            System.out.println(DateUtil.getBeforMonthStr(new Date(),12)); | 
 |  |  |  | 
 |  |  | //            List<Date> list =getThisMonthDateList(); | 
 |  |  | //            for(Date d :list){ | 
 |  |  | //                System.out.println(getPlusTime2(d)); | 
 |  |  | //            } | 
 |  |  | //            List<Date> list1 =getThisYearMonthList(); | 
 |  |  | //            for(Date d :list1){ | 
 |  |  | //                System.out.println(getPlusTime2(d)); | 
 |  |  | //            } | 
 |  |  |  | 
 |  |  | //            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"); | 
 |  |  | 
 |  |  |         return weekDays[w]; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 获取当前日期是星期几<br> | 
 |  |  |      * | 
 |  |  |      * @param dt | 
 |  |  |      * @return 当前日期是星期几 | 
 |  |  |      */ | 
 |  |  |     public static String getWeekZhouOfDate(Date dt) { | 
 |  |  |         String[] weekDays = { "周日", "周一", "周二", "周三", "周四", "周五", "周六" }; | 
 |  |  |         Calendar cal = Calendar.getInstance(); | 
 |  |  |         cal.setTime(dt); | 
 |  |  |  | 
 |  |  |         int w = cal.get(Calendar.DAY_OF_WEEK) - 1; | 
 |  |  |         if (w < 0) | 
 |  |  |         { | 
 |  |  |             w = 0; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         return weekDays[w]; | 
 |  |  |     } | 
 |  |  |     /** | 
 |  |  |      * 获取星期数 | 
 |  |  |      * | 
 |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 获取X天后的日期 | 
 |  |  |      * @param date | 
 |  |  |      * @param beforMonths 下月 -1  上月 1 | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     public static String getBeforMonthStr(Date date,Integer beforMonths){ | 
 |  |  |         ZonedDateTime zonedDateTime = date.toInstant().atZone(ZoneId.systemDefault()); | 
 |  |  |         // 转换为java.time.LocalDate,计算x天的日期 | 
 |  |  |         LocalDate dateBeforeDay = zonedDateTime.toLocalDate().minusMonths(beforMonths); | 
 |  |  |         return dateBeforeDay.toString(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 获取X年后的日期 | 
 |  |  |      * @param date | 
 |  |  |      * @param beforMonths 下年 -1  上年 1 | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     public static String getBeforYear(Date date,Integer beforMonths){ | 
 |  |  |         ZonedDateTime zonedDateTime = date.toInstant().atZone(ZoneId.systemDefault()); | 
 |  |  |         // 转换为java.time.LocalDate,计算x天的日期 | 
 |  |  |         LocalDate dateBeforeDay = zonedDateTime.toLocalDate().minusYears(beforMonths); | 
 |  |  |         return dateBeforeDay.toString(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     // 获取本周的开始时间 | 
 |  |  |     public static Date getBeginDayOfWeek(int addYears) { | 
 |  |  |         Date date = new Date(); | 
 |  |  |         if (date == null) { | 
 |  |  |             return null; | 
 |  |  |         } | 
 |  |  |         Calendar cal = Calendar.getInstance(); | 
 |  |  |         cal.setTime(date); | 
 |  |  |         cal.set(Calendar.YEAR,getNowYearNum()+addYears); | 
 |  |  |         int dayofweek = cal.get(Calendar.DAY_OF_WEEK); | 
 |  |  |         if (dayofweek == 1) { | 
 |  |  |             dayofweek += 7; | 
 |  |  |         } | 
 |  |  |         cal.add(Calendar.DATE, 2 - dayofweek); | 
 |  |  |         return getDayStartTime(cal.getTime()); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     // 获取本周的结束时间 | 
 |  |  |     public static Date getEndDayOfWeek(int addYears) { | 
 |  |  |         Calendar cal = Calendar.getInstance(); | 
 |  |  |         cal.setTime(getBeginDayOfWeek(addYears)); | 
 |  |  |         cal.add(Calendar.DAY_OF_WEEK, 6); | 
 |  |  |         Date weekEndSta = cal.getTime(); | 
 |  |  |         return getDayEndTime(weekEndSta); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     // 获取上周的开始时间 | 
 |  |  |     public static Date getBeginDayOfLastWeek() { | 
 |  |  |         Date date = new Date(); | 
 |  |  |         if (date == null) { | 
 |  |  |             return null; | 
 |  |  |         } | 
 |  |  |         Calendar cal = Calendar.getInstance(); | 
 |  |  |         cal.setTime(date); | 
 |  |  |         cal.set(Calendar.YEAR,getNowYearNum()); | 
 |  |  |         int dayofweek = cal.get(Calendar.DAY_OF_WEEK); | 
 |  |  |         if (dayofweek == 1) { | 
 |  |  |             dayofweek += 7; | 
 |  |  |         } | 
 |  |  |         cal.add(Calendar.DATE, 2 - dayofweek - 7); | 
 |  |  |         return getDayStartTime(cal.getTime()); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     // 获取上周的结束时间 | 
 |  |  |     public static Date getEndDayOfLastWeek() { | 
 |  |  |         Calendar cal = Calendar.getInstance(); | 
 |  |  |         cal.setTime(getBeginDayOfLastWeek()); | 
 |  |  |         cal.add(Calendar.DAY_OF_WEEK, 6); | 
 |  |  |         Date weekEndSta = cal.getTime(); | 
 |  |  |         return getDayEndTime(weekEndSta); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     // 获取本月的开始时间 | 
 |  |  |     public static Date getBeginDayOfMonth(int addYears) { | 
 |  |  |         Calendar calendar = Calendar.getInstance(); | 
 |  |  |         calendar.set(getNowYearNum()+addYears, getNowMonthNum() - 1, 1); | 
 |  |  |         return getDayStartTime(calendar.getTime()); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     // 获取本月的结束时间 | 
 |  |  |     public static Date getEndDayOfMonth(int addYears) { | 
 |  |  |         Calendar calendar = Calendar.getInstance(); | 
 |  |  |         calendar.set(getNowYearNum()+addYears, getNowMonthNum() - 1, 1); | 
 |  |  |         int day = calendar.getActualMaximum(5); | 
 |  |  |         calendar.set(getNowYearNum()+addYears, getNowMonthNum() - 1, day); | 
 |  |  |         return getDayEndTime(calendar.getTime()); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     // 获取上月的开始时间 | 
 |  |  |     public static Date getBeginDayOfLastMonth() { | 
 |  |  |         Calendar calendar = Calendar.getInstance(); | 
 |  |  |         calendar.set(getNowYearNum(), getNowMonthNum() - 2, 1); | 
 |  |  |         return getDayStartTime(calendar.getTime()); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     // 获取上月的结束时间 | 
 |  |  |     public static Date getEndDayOfLastMonth() { | 
 |  |  |         Calendar calendar = Calendar.getInstance(); | 
 |  |  |         calendar.set(getNowYearNum(), getNowMonthNum() - 2, 1); | 
 |  |  |         int day = calendar.getActualMaximum(5); | 
 |  |  |         calendar.set(getNowYearNum(), getNowMonthNum() - 2, day); | 
 |  |  |         return getDayEndTime(calendar.getTime()); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     // 获取本年的开始时间 | 
 |  |  |     public static Date getBeginDayOfYear(int addYears) { | 
 |  |  |         Calendar cal = Calendar.getInstance(); | 
 |  |  |         cal.set(Calendar.YEAR, getNowYearNum()+addYears); | 
 |  |  |         cal.set(Calendar.MONTH, Calendar.JANUARY); | 
 |  |  |         cal.set(Calendar.DATE, 1); | 
 |  |  |         return getDayStartTime(cal.getTime()); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     // 获取本年的结束时间 | 
 |  |  |     public static java.util.Date getEndDayOfYear(int addYears){ | 
 |  |  |         Calendar cal = Calendar.getInstance(); | 
 |  |  |         cal.set(Calendar.YEAR, getNowYearNum()+addYears); | 
 |  |  |         cal.set(Calendar.MONTH, Calendar.DECEMBER); | 
 |  |  |         cal.set(Calendar.DATE, 31); | 
 |  |  |         return getDayEndTime(cal.getTime()); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     // 获取当天的开始时间 | 
 |  |  |     public static java.util.Date getDayBegin() { | 
 |  |  |         Calendar cal = new GregorianCalendar(); | 
 |  |  |         cal.set(Calendar.HOUR_OF_DAY, 0); | 
 |  |  |         cal.set(Calendar.MINUTE, 0); | 
 |  |  |         cal.set(Calendar.SECOND, 0); | 
 |  |  |         cal.set(Calendar.MILLISECOND, 0); | 
 |  |  |         return cal.getTime(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     // 获取当天的结束时间 | 
 |  |  |     public static java.util.Date getDayEnd() { | 
 |  |  |         Calendar cal = new GregorianCalendar(); | 
 |  |  |         cal.set(Calendar.HOUR_OF_DAY, 23); | 
 |  |  |         cal.set(Calendar.MINUTE, 59); | 
 |  |  |         cal.set(Calendar.SECOND, 59); | 
 |  |  |         return cal.getTime(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     // 获取某个日期的开始时间 | 
 |  |  |     public static Timestamp getDayStartTime(Date d) { | 
 |  |  |         Calendar calendar = Calendar.getInstance(); | 
 |  |  |         if (null != d) | 
 |  |  |             calendar.setTime(d); | 
 |  |  |         calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), | 
 |  |  |                 calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0); | 
 |  |  |         calendar.set(Calendar.MILLISECOND, 0); | 
 |  |  |         return new Timestamp(calendar.getTimeInMillis()); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     // 获取某个日期的结束时间 | 
 |  |  |     public static Timestamp getDayEndTime(Date d) { | 
 |  |  |         Calendar calendar = Calendar.getInstance(); | 
 |  |  |         if (null != d) | 
 |  |  |             calendar.setTime(d); | 
 |  |  |         calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), | 
 |  |  |                 calendar.get(Calendar.DAY_OF_MONTH), 23, 59, 59); | 
 |  |  |         calendar.set(Calendar.MILLISECOND, 999); | 
 |  |  |         return new Timestamp(calendar.getTimeInMillis()); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     // 获取今年是哪一年 | 
 |  |  |     public static Integer getNowYearNum() { | 
 |  |  |         Date date = new Date(); | 
 |  |  |         GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance(); | 
 |  |  |         gc.setTime(date); | 
 |  |  |         return Integer.valueOf(gc.get(1)); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     // 获取本月是哪一月 | 
 |  |  |     public static int getNowMonthNum() { | 
 |  |  |         Date date = new Date(); | 
 |  |  |         GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance(); | 
 |  |  |         gc.setTime(date); | 
 |  |  |         return gc.get(2) + 1; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public static int getNowDayNum(){ | 
 |  |  |         // 获取Calendar实例 | 
 |  |  |         Calendar calendar = Calendar.getInstance(); | 
 |  |  |         return calendar.get(Calendar.DAY_OF_MONTH); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  | } |