fwq
2021-11-09 220f21a574d70a381e8a928c6a0b7893b723bf18
src/main/java/com/hx/util/DateUtil.java
@@ -216,8 +216,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 +233,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 +302,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 +390,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){
@@ -343,4 +438,45 @@
       return status;
    }
    /**把秒转换成X天X时X分X秒*/
    public static String getChineseStr(Integer second)
    {
        int day = 24 * 60 * 60;
        int hour = 60 * 60;
        int min = 60;
        int dayNum = second / day;
        int hourNum = second % day / hour;
        int minNum = second % day % hour / min;
        second = second % day % hour % min;
        String str = dayNum > 0 ? dayNum + "天" : "";
        str += hourNum > 0 ? hourNum + "时" : "";
        str += minNum > 0 ? minNum + "分" : "";
        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;
    }
}