|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 获取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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|