| | |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 获取X月份之前的月份数 |
| | | * @param currentDate |
| | |
| | | } |
| | | return list; |
| | | } |
| | | /** |
| | | * 获取X月份之前的月份数 |
| | | * @param currentDate |
| | | * @param month |
| | | * @return |
| | | */ |
| | | public static List<String> getDateListBeforMonth(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"); |
| | |
| | | startDate = calendar.getTime(); |
| | | list.add(DateUtil.dateToString(startDate,"yyyy-MM-dd")); |
| | | System.out.println(DateUtil.dateToString(startDate,"yyyy-MM-dd")); |
| | | } |
| | | return list; |
| | | } |
| | | public static List<Date> getDateListBeforDays(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<Date> list = new ArrayList<>(); |
| | | while (startDate.before(endDate)) { |
| | | calendar.add(Calendar.DAY_OF_YEAR, 1); // 获取下一天日期 |
| | | startDate = calendar.getTime(); |
| | | list.add(startDate); |
| | | } |
| | | return list; |
| | | } |
| | |
| | | * @return String |
| | | * @throws Exception |
| | | */ |
| | | public static String getNowPlusTime() throws Exception { |
| | | public static String getNowPlusTime() { |
| | | String nowDate = ""; |
| | | try { |
| | | java.sql.Date date = null; |
| | |
| | | * @return String |
| | | * @throws Exception |
| | | */ |
| | | public static String getPlusTime(Date date) throws Exception { |
| | | public static String getPlusTime(Date date) { |
| | | if (date == null) |
| | | return null; |
| | | try { |
| | |
| | | } 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; |
| | | } |
| | | |
| | | /** |
| | |
| | | * @return |
| | | */ |
| | | public static Date getXMinuteAfterDate(Date date, int minute) { |
| | | if(date ==null){ |
| | | date = new Date(); |
| | | } |
| | | Calendar now = Calendar.getInstance(); |
| | | now.setTime(date); |
| | | now.set(Calendar.MINUTE, now.get(Calendar.MINUTE) + minute); |
| | |
| | | public static String getFirstDayOfThisMonth() { |
| | | try { |
| | | return getNowShortDate().substring(0, 6) + "01"; |
| | | } catch (Exception e) { |
| | | return ""; |
| | | } |
| | | } |
| | | public static List<Date> getThisMonthDateList() { |
| | | List<Date> dateList = new ArrayList<>(); |
| | | try { |
| | | Calendar calendar = Calendar.getInstance(); |
| | | int daysInMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); |
| | | calendar.set(Calendar.HOUR,0); |
| | | calendar.set(Calendar.MINUTE,0); |
| | | calendar.set(Calendar.SECOND,0); |
| | | calendar.set(Calendar.MILLISECOND,0); |
| | | for (int i = 0; i < daysInMonth; i++) { |
| | | calendar.set(Calendar.DAY_OF_MONTH,i+1); |
| | | dateList.add(calendar.getTime()); |
| | | } |
| | | } catch (Exception e) { |
| | | return null; |
| | | } |
| | | return dateList; |
| | | } |
| | | public static List<Date> getThisYearMonthList() { |
| | | List<Date> dateList = new ArrayList<>(); |
| | | try { |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.set(Calendar.DAY_OF_MONTH,1); |
| | | calendar.set(Calendar.HOUR,0); |
| | | calendar.set(Calendar.MINUTE,0); |
| | | calendar.set(Calendar.SECOND,0); |
| | | calendar.set(Calendar.MILLISECOND,0); |
| | | for (int i = 0; i < 12; i++) { |
| | | calendar.set(Calendar.MONTH,i); |
| | | dateList.add(calendar.getTime()); |
| | | } |
| | | } catch (Exception e) { |
| | | return null; |
| | | } |
| | | return dateList; |
| | | } |
| | | public static Date getFirstThisYearDate() { |
| | | try { |
| | | return sdfShort.parse( getNowShortDate().substring(0, 4) + "0101"); |
| | | } catch (Exception e) { |
| | | return null; |
| | | } |
| | | } |
| | | public static String getFirstDayCurrentMonth() { |
| | | try { |
| | | return getDateLong(new Date()).substring(0, 7) + "-01"; |
| | | } catch (Exception e) { |
| | | return ""; |
| | | } |
| | |
| | | // System.out.println(DateUtil.afterMinutesDate(-5)); |
| | | |
| | | |
| | | DateUtil.getBeforDays(new Date(),7); |
| | | 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"); |
| | |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.setTime(date); |
| | | calendar.add(Calendar.DATE, days);// |
| | | return calendar.getTime(); |
| | | } |
| | | public static Date addMonthToDate(Date date, int month) { |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.setTime(date); |
| | | calendar.add(Calendar.MONTH, month);// |
| | | return calendar.getTime(); |
| | | } |
| | | public static Date addYearToDate(Date date, int year) { |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.setTime(date); |
| | | calendar.add(Calendar.YEAR, year);// |
| | | return calendar.getTime(); |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 获取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; |
| | | } |
| | | } |