chenjiahe
2022-01-13 c64e1248bfda3ac8c5120e529fd096dfc4846629
src/main/java/com/hx/util/DateUtil.java
@@ -26,6 +26,18 @@
    private static SimpleDateFormat Format_16 = new SimpleDateFormat("yyyy/MM/dd HH:mm");
    private static SimpleDateFormat Format_17 = new SimpleDateFormat("HH:mm");
    /**时间格式转化iso8601
     * @param date 时间
     * @return 返回的时间格式字符串
     */
    public static String dateFormatISO8601(Date date) {
        if(!SimpleTool.checkNotNull(date)){
            return "";
        }
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX");//设置日期格式
        return df.format(date);
    }
    /**时间格式转化
     * @param date 时间
     * @param format 时间格式
@@ -37,6 +49,17 @@
        }
        SimpleDateFormat df = new SimpleDateFormat(format);//设置日期格式
        return df.format(date);
    }
    /**时间戳转时间
     * @param timestamp 时间戳
     * @param format 时间格式
     * @return 返回的时间格式字符串
     */
    public static Date timestampToDate(long timestamp, String format) {
        SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String sd = sdf.format(new Date(timestamp));      // 时间戳转换成时间
        return DateUtil.parseString(sd,"yyyy-MM-dd HH:mm:ss");
    }
    /**
@@ -216,8 +239,13 @@
     * @return
     * @throws Exception
     */
    public static Date parseString(String str) throws Exception {
        return Format_2.parse(str);
    public static Date parseString(String str) {
        try {
            return Format_2.parse(str);
        }catch (Exception e)
        {
            return null;
        }
    }
    /**
@@ -228,10 +256,38 @@
     * @return
     * @throws Exception
     */
    public static Date parseString(String str, String format) throws Exception {
    public static Date parseString(String str, String format) {
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        return sdf.parse(str);
        try{
            return sdf.parse(str);
        }catch (Exception e)
        {
            return null;
        }
    }
    /**字符串转成时间yyyy-MM-dd HH:mm:ss*/
    public static Date parseString_1(String str)
    {
        try{
            return  Format_3.parse(str);
        }catch (Exception e)
        {
            return null;
        }
    }
    /**字符串转成时间yyyy-MM-dd*/
    public static Date parseString_2(String str)
    {
        try{
            return Format_4.parse(str);
        }catch (Exception e)
        {
            return null;
        }
    }
    /**时间上分钟叠加
     * @Author: ChenJiaHe
@@ -269,6 +325,32 @@
        Calendar c = Calendar.getInstance();
        c.setTime(dateTime);
        c.add(Calendar.DATE, dayNum);
        return c.getTime();
    }
    /**时间上月数叠加
     * @Author: ChenJiaHe
     * @param dateTime 时间
     * @param dayNum 天数
     * @return
     */
    public static Date addMonth(Date dateTime,int dayNum){
        Calendar c = Calendar.getInstance();
        c.setTime(dateTime);
        c.add(Calendar.MONTH, dayNum);
        return c.getTime();
    }
    /**时间上年数叠加
     * @Author: ChenJiaHe
     * @param dateTime 时间
     * @param dayNum 天数
     * @return
     */
    public static Date addYear(Date dateTime,int dayNum){
        Calendar c = Calendar.getInstance();
        c.setTime(dateTime);
        c.add(Calendar.YEAR, dayNum);
        return c.getTime();
    }
@@ -331,6 +413,42 @@
        return weekDays[w];
    }
    /**
     * endTime比startTime多的天数
     * @param startTime 最小时间
     * @param endTime 最大时间
     * @return
     */
    public static Integer differDay(Date startTime,Date endTime){
        Calendar cal1 = Calendar.getInstance();
        cal1.setTime(startTime);
        Calendar cal2 = Calendar.getInstance();
        cal2.setTime(endTime);
        int day1= cal1.get(Calendar.DAY_OF_YEAR);
        int day2 = cal2.get(Calendar.DAY_OF_YEAR);
        int year1 = cal1.get(Calendar.YEAR);
        int year2 = cal2.get(Calendar.YEAR);
        if(year1 != year2) { //同一年
            int timeDistance = 0 ;
            for(int i = year1 ; i < year2 ; i ++) {
                if(i%4==0 && i%100!=0 || i%400==0) {//闰年
                    timeDistance += 366;
                }
                else {//不是闰年
                    timeDistance += 365;
                }
            }
            return timeDistance + (day2-day1) ;
        }
        else { //不同年
            System.out.println("判断day2 - day1 : " + (day2-day1));
            return day2-day1;
        }
    }
    /**判断两个时间是不是同一天*/
    public static boolean timeEqual(Date startTime,Date endTime){
       if(startTime == null || endTime==null){
@@ -358,9 +476,30 @@
        String str = dayNum > 0 ? dayNum + "天" : "";
        str += hourNum > 0 ? hourNum + "时" : "";
        str += minNum > 0 ? minNum + "分" : "";
        str += second > 0 ? second + "秒" : "";
        str += second + "秒";
        return str;
    }
    /**
     * 针对str格式的时间做转换 格式为"xx:xx"
     * @param time  传入的时间
     * @return  返回分钟如果10:25,则返回625
     */
    public static int getMinuteNum(String time){
        if(!StringUtils.isEmpty(time))
        {
            String[] arr = time.split(":");
            if(arr != null && arr.length == 2)
            {
                return Integer.parseInt(arr[0]) * 60 + Integer.parseInt(arr[1]);
            }
        }
        return 0;
    }
}