From 773870f014c9e05c806101069c651da99b00ddda Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期五, 29 十一月 2024 14:13:20 +0800 Subject: [PATCH] 最新版本541200007 --- server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java | 202 +++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 190 insertions(+), 12 deletions(-) diff --git a/server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java b/server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java index a4cd38c..e27187a 100644 --- a/server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java +++ b/server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java @@ -86,7 +86,7 @@ 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); @@ -318,6 +318,89 @@ } /** + * 鑾峰彇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; + } + /** + * 鑾峰彇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"); + 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; + } + 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; + } + + /** * Descrption:鍙栧緱褰撳墠鏃ユ湡鏃堕棿,鏍煎紡涓�:YYYYMMDDHHMISS * * @return String @@ -395,7 +478,7 @@ * @return String * @throws Exception */ - public static String getNowPlusTime() throws Exception { + public static String getNowPlusTime() { String nowDate = ""; try { java.sql.Date date = null; @@ -413,7 +496,7 @@ * @return String * @throws Exception */ - public static String getPlusTime(Date date) throws Exception { + public static String getPlusTime(Date date) { if (date == null) return null; try { @@ -1229,6 +1312,23 @@ } /** + * 寰楀埌X鍒嗛挓鍚庣殑鏃堕棿(鏃堕棿鏍煎紡) + * + * @param date + * @param minute + * @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); + return now.getTime(); + } + + /** * 寰楀埌涓や釜鏃ユ湡涔嬮棿鐩稿樊鐨勫ぉ鏁� * * @param newDate @@ -1570,6 +1670,56 @@ 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 ""; } @@ -2761,16 +2911,25 @@ // 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; + 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)); + } - - 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(); @@ -2963,6 +3122,18 @@ 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(); + } public static String afterDateToStr(Integer days){ Date date = new Date(); @@ -2971,6 +3142,13 @@ 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; -- Gitblit v1.9.3