燕山石化溯源三维电子沙盘-【后端】-服务
1
13693261870
2024-11-20 8185e5cdc2bbdf7fb4ca46a10864106893a01ed3
src/main/java/com/yssh/utils/DateUtils.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,301 @@
package com.yssh.utils;
import java.lang.management.ManagementFactory;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import com.yssh.config.InitConfig;
import org.apache.commons.lang3.time.DateFormatUtils;
public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
   public static String YYYY = "yyyy";
   public static String YYYY_MM = "yyyy-MM";
   public static String YYYY_MM_DD = "yyyy-MM-dd";
   public static String YYYYMM = "yyyyMM";
   public static String YYYYMMDD = "yyyyMMdd";
   public static String YYYYMMDDHH = "yyyyMMddHH";
   public static String YYYYMMDDHHMMSS = "yyyyMMddHHmmss";
   public static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";
   public static String YYYY_MM_DD_HH_MM = "yyyy-MM-dd HH:mm";
   public static String YYYY_MM_DD_HH = "yyyy-MM-dd HH";
   private static String[] parsePatterns = {"yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM",
         "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM", "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss",
         "yyyy.MM.dd HH:mm", "yyyy.MM"};
   public static String getDate() {
      return dateTimeNow(YYYY_MM_DD);
   }
   public static final String getTime() {
      return dateTimeNow(YYYY_MM_DD_HH_MM_SS);
   }
   public static final String dateTimeNow() {
      return dateTimeNow(YYYYMMDDHHMMSS);
   }
   public static final String dateTimeNow(final String format) {
      return parseDateToStr(format, InitConfig.getDate());
   }
   public static final String dateTime(final Date date) {
      return parseDateToStr(YYYY_MM_DD, date);
   }
   public static final String parseDateToStr(final String format, final Date date) {
      return new SimpleDateFormat(format).format(date);
   }
   public static final Date dateTime(final String format, final String ts) {
      try {
         return new SimpleDateFormat(format).parse(ts);
      } catch (ParseException e) {
         throw new RuntimeException(e);
      }
   }
   public static String getYyyyMm(Date date) {
      return new SimpleDateFormat(YYYYMM).format(date);
   }
   public static String getYyyyMmDd(Date date) {
      return new SimpleDateFormat(YYYYMMDD).format(date);
   }
   public static String getYyyyMmDdHh(Date date) {
      return new SimpleDateFormat(YYYYMMDDHH).format(date);
   }
   public static String getYyyyMmDdHhMmSs(Date date) {
      return new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS).format(date);
   }
   /**
    * æ—¥æœŸè·¯å¾„ å³å¹´/月/日 å¦‚2018/08/08
    */
   public static final String datePath() {
      return DateFormatUtils.format(InitConfig.getDate(), "yyyy/MM/dd");
   }
   /**
    * æ—¥æœŸè·¯å¾„ å³å¹´/月/日 å¦‚20180808
    */
   public static final String dateTime() {
      return DateFormatUtils.format(InitConfig.getDate(), "yyyyMMdd");
   }
   /**
    * æ—¥æœŸåž‹å­—符串转化为日期 æ ¼å¼
    */
   public static Date parseDate(Object str) {
      if (str == null) {
         return null;
      }
      try {
         return parseDate(str.toString(), parsePatterns);
      } catch (ParseException e) {
         return null;
      }
   }
   /**
    * èŽ·å–æœåŠ¡å™¨å¯åŠ¨æ—¶é—´
    */
   public static Date getServerStartDate() {
      long time = ManagementFactory.getRuntimeMXBean().getStartTime();
      return new Date(time);
   }
   /**
    * è®¡ç®—两个时间差
    */
   public static String getDatePoor(Date endDate, Date nowDate) {
      long nd = 1000 * 24 * 60 * 60;
      long nh = 1000 * 60 * 60;
      long nm = 1000 * 60;
      // long ns = 1000;
      // èŽ·å¾—ä¸¤ä¸ªæ—¶é—´çš„æ¯«ç§’æ—¶é—´å·®å¼‚
      long diff = endDate.getTime() - nowDate.getTime();
      // è®¡ç®—差多少天
      long day = diff / nd;
      // è®¡ç®—差多少小时
      long hour = diff % nd / nh;
      // è®¡ç®—差多少分钟
      long min = diff % nd % nh / nm;
      // è®¡ç®—差多少秒//输出结果
      // long sec = diff % nd % nh % nm / ns;
      return day + "天" + hour + "小时" + min + "分钟";
   }
   /**
    * @throws
    * @Title: differHour
    * @Description: èŽ·å–ä¸¤ä¸ªæ—¶é—´å·®å‡ ä¸ªå°æ—¶
    * @param: @param endDate
    * @param: @param nowDate
    * @param: @return
    * @return: long
    */
   public static int differDay(Date startDate, Date endDate) {
      long nd = 1000 * 24 * 60 * 60;
      long diff = endDate.getTime() - startDate.getTime();
      double dd = Double.valueOf(String.valueOf(diff)) / nd;
      // è®¡ç®—差多少天
      return Double.valueOf(Math.ceil(dd)).intValue();
   }
   /**
    * @Description: èŽ·å–ä¸€æ®µæ—¶é—´é—´éš”
    * @param:date éœ€è¦æ“ä½œçš„æ—¶é—´å¯¹è±¡
    * @param:day æ“ä½œçš„æ—¶é—´é—´éš”
    * æ­£æ•°ä¸ºä¹‹åŽä¸€æ®µæ—¶é—´
    * è´Ÿæ•°ä¸ºä¹‹å‰ä¸€æ®µæ—¶é—´
    * @param:dateType æ“ä½œçš„æ—¶é—´æ—¶åˆ†ç§’天选择
    * å¸¸ç”¨æœ‰ï¼š
    * Calendar.MINUTE åˆ†
    * Calendar.HOUR_OF_DAY æ—¶
    * Calendar.DATE å¤©
    * Calendar.MONTH æœˆ
    */
   public static Date getAPeriodOfTime(Date date, int day, int dateType) {
      Calendar calendar = Calendar.getInstance();
      calendar.setTime(date);
      calendar.add(dateType, day);
      return calendar.getTime();
   }
   public static List<String> get3Hours() {
      List<String> times = new ArrayList<>();
      SimpleDateFormat ymdh = new SimpleDateFormat(YYYYMMDDHH);
      Calendar calendar = Calendar.getInstance();
      calendar.add(Calendar.HOUR_OF_DAY, 1);
      for (int i = 0; i < 3; i++) {
         calendar.add(Calendar.HOUR_OF_DAY, -1);
         String time = ymdh.format(calendar.getTime());
         // times.add(time);
         times.add(0, time);
      }
      return times;
   }
   public static Map<Date, Date> segmentationDateByTimeQuantum(Date startDate, Date endDate, int timeQuantum, int dateType) {
      LinkedHashMap<Date, Date> result = new LinkedHashMap<Date, Date>();
      long startTimeMillisecond = startDate.getTime();
      long endTimeMillisecond = endDate.getTime();
      Long quantumTimeMillisecond = 0L;
      switch (dateType) {
         case Calendar.DATE:
            quantumTimeMillisecond = new Integer(1000 * 60 * 60 * 24 * timeQuantum).longValue();
            break;
         case Calendar.HOUR_OF_DAY:
            quantumTimeMillisecond = new Integer(1000 * 60 * 60 * timeQuantum).longValue();
            break;
         case Calendar.MINUTE:
            quantumTimeMillisecond = new Integer(1000 * 60 * timeQuantum).longValue();
            break;
         default:
            break;
      }
      for (long time = startTimeMillisecond; time < endTimeMillisecond; time += quantumTimeMillisecond) {
         Date beginDate = new Date(time);
         Date finishDate = new Date(time + quantumTimeMillisecond);
         if (finishDate.getTime() > endTimeMillisecond) {
            finishDate = endDate;
         }
         result.put(beginDate, finishDate);
      }
      return result;
   }
   /**
    * å‰ªé™¤æ—¥æœŸçš„æ—¶é—´éƒ¨åˆ†
    */
   public static Date trimTime(Date date) {
      Calendar cal = Calendar.getInstance();
      cal.setTime(date);
      return dateTime(YYYY_MM_DD_HH_MM_SS, parseDateToStr(YYYY_MM_DD, cal.getTime()) + " 00:00:00");
   }
   /**
    * å޻年
    */
   public static Date lastYear(Date date) {
      Calendar cal = Calendar.getInstance();
      cal.setTime(date);
      cal.add(Calendar.YEAR, -1);
      return cal.getTime();
   }
   /**
    * èŽ·å–ä¸€å¹´ä¸­çš„ç¬¬å‡ å‘¨
    */
   public static int getWeekOfYear(Date date) {
      Calendar cal = Calendar.getInstance();
      cal.setTime(date);
      return cal.get(Calendar.WEEK_OF_YEAR);
   }
   /**
    * èŽ·å–ä¸€å¹´ä¸­çš„ç¬¬å‡ å‘¨çš„æ˜ŸæœŸä¸€
    */
   public static Date getWeekOfYearForMon(int year, int weekOfYear) {
      Calendar cal = Calendar.getInstance();
      cal.set(Calendar.YEAR, year);
      cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
      cal.set(Calendar.WEEK_OF_YEAR, weekOfYear);
      return cal.getTime();
   }
   /**
    * èŽ·å–ä¸€å¹´ä¸­çš„ç¬¬å‡ å‘¨çš„æ˜ŸæœŸæ—¥
    */
   public static Date getWeekOfYearForSun(int year, int weekOfYear) {
      Calendar cal = Calendar.getInstance();
      cal.set(Calendar.YEAR, year);
      cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
      cal.set(Calendar.WEEK_OF_YEAR, weekOfYear);
      return cal.getTime();
   }
   /**
    * èŽ·å–æœ¬æœˆç¬¬ä¸€å¤©
    **/
   public static Date getMonthStart(Date date) {
      Calendar cal = Calendar.getInstance();
      // cal.set(Calendar.MONTH, 3)
      cal.setTime(date);
      cal.set(Calendar.DAY_OF_MONTH, 1);
      return dateTime(YYYY_MM_DD_HH_MM_SS, parseDateToStr(YYYY_MM_DD, cal.getTime()) + " 00:00:00");
   }
   /**
    * èŽ·å–æœ¬æœˆæœ€åŽä¸€å¤©
    **/
   public static Date getMonthEnd(Date date) {
      Calendar cal = Calendar.getInstance();
      // cal.set(Calendar.MONTH, 3)
      cal.setTime(date);
      cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
      return dateTime(YYYY_MM_DD_HH_MM_SS, parseDateToStr(YYYY_MM_DD, cal.getTime()) + " 23:59:59");
   }
}