燕山石化溯源三维电子沙盘-【后端】-服务
1
13693261870
2024-11-20 8185e5cdc2bbdf7fb4ca46a10864106893a01ed3
src/main/java/com/yssh/utils/DateUtils.java
@@ -5,13 +5,9 @@
import java.text.SimpleDateFormat;
import java.util.*;
import com.yssh.config.InitConfig;
import org.apache.commons.lang3.time.DateFormatUtils;
/**
 * 时间工具类
 *
 * @author tam
 */
public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
   public static String YYYY = "yyyy";
@@ -19,34 +15,25 @@
   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",
   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" };
         "yyyy.MM.dd HH:mm", "yyyy.MM"};
   /**
    * 获取当前Date型日期
    *
    * @return Date() 当前日期
    */
   public static Date getNowDate() {
      return new Date();
   }
   /**
    * 获取当前日期, 默认格式为yyyy-MM-dd
    *
    * @return String
    */
   public static String getDate() {
      return dateTimeNow(YYYY_MM_DD);
   }
@@ -60,7 +47,7 @@
   }
   public static final String dateTimeNow(final String format) {
      return parseDateToStr(format, new Date());
      return parseDateToStr(format, InitConfig.getDate());
   }
   public static final String dateTime(final Date date) {
@@ -79,6 +66,14 @@
      }
   }
   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);
   }
@@ -91,16 +86,14 @@
    * 日期路径 即年/月/日 如2018/08/08
    */
   public static final String datePath() {
      Date now = new Date();
      return DateFormatUtils.format(now, "yyyy/MM/dd");
      return DateFormatUtils.format(InitConfig.getDate(), "yyyy/MM/dd");
   }
   /**
    * 日期路径 即年/月/日 如20180808
    */
   public static final String dateTime() {
      Date now = new Date();
      return DateFormatUtils.format(now, "yyyyMMdd");
      return DateFormatUtils.format(InitConfig.getDate(), "yyyyMMdd");
   }
   /**
@@ -145,38 +138,38 @@
      // long sec = diff % nd % nh % nm / ns;
      return day + "天" + hour + "小时" + min + "分钟";
   }
   /**
    * @Title: differHour
    * @throws
    * @Title: differHour
    * @Description: 获取两个时间差几个小时
    * @param: @param endDate
    * @param: @param nowDate
    * @param: @return
    * @return: long
    * @throws
    * @param: @return
    * @return: long
    */
   public static int differDay(Date startDate, Date endDate){
   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:day 操作的时间间隔
    * 正数为之后一段时间
    * 负数为之前一段时间
    * @param:dateType 操作的时间时分秒天选择
    * 常用有:
    *    Calendar.MINUTE 分
    *    Calendar.HOUR_OF_DAY 时
    *    Calendar.DATE 天
    *    Calendar.MONTH 月
    * Calendar.MINUTE 分
    * Calendar.HOUR_OF_DAY 时
    * Calendar.DATE 天
    * Calendar.MONTH 月
    */
   public static Date getAPeriodOfTime(Date date, int day,int dateType) {
   public static Date getAPeriodOfTime(Date date, int day, int dateType) {
      Calendar calendar = Calendar.getInstance();
      calendar.setTime(date);
      calendar.add(dateType, day);
@@ -199,26 +192,24 @@
      return times;
   }
   /**
    */
   public static Map<Date, Date> segmentationDateByTimeQuantum(Date startDate, Date endDate, int timeQuantum,int dateType){
   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 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;
         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);
@@ -230,32 +221,81 @@
      }
      return result;
   }
   /**
     * 获取本月第一天
     * @return String
     **/
    public static Date getMonthStart() {
        Calendar cal = Calendar.getInstance();
        //cal.set(Calendar.MONTH, 3);
      cal.set(Calendar.DAY_OF_MONTH, 1);
        return dateTime(YYYY_MM_DD_HH_MM_SS, parseDateToStr(YYYY_MM_DD, cal.getTime()) + " 00:00:00");
    }
    /**
     * 获取本月最后一天
     * @return String
     **/
    public static Date getMonthEnd() {
        Calendar cal = Calendar.getInstance();
      //cal.set(Calendar.MONTH, 3);
        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");
    }
    public static void main(String[] args) {
      //System.out.println(parseDateToStr(YYYY_MM_DD_HH_MM_SS, getMonthStart()));
      //System.err.println(parseDateToStr(YYYY_MM_DD_HH_MM_SS, getMonthEnd()));
      System.out.println(parseDateToStr(YYYY_MM_DD_HH_MM_SS, getAPeriodOfTime(getNowDate(), -7, Calendar.DATE)));
   /**
    * 剪除日期的时间部分
    */
   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");
   }
}