利用java8实现一个日期工具类

public class DateUtil {



    /**
    *@description(将 date 转换成指定格式的字符串)
    *@date 2018/4/27 11:20
    *@param date, format
    *@return java.lang.String
    */
    public static String formatDate(Date date,String format){
        LocalDateTime localDateTime=LocalDateTime.ofInstant(date.toInstant(),ZoneId.systemDefault());

        DateTimeFormatter formatter=DateTimeFormatter.ofPattern(format);

        return localDateTime.format(formatter);
    }

    /**
    *@description(间隔天数)
    *@date 2018/6/4 17:42 
    *@param [start, end]
    *@return long 
    */
    public static long betweenDays(Date start,Date end){
        LocalDateTime nowDateTime= LocalDateTime.ofInstant(start.toInstant(), ZoneId.systemDefault());
        LocalDateTime thirdDateTime= LocalDateTime.ofInstant(end.toInstant(), ZoneId.systemDefault());

        long between = ChronoUnit.DAYS.between(nowDateTime, thirdDateTime);
        return between;
    }


    /**
    *@Description(将带T 的字符串,转成 date类型)
    *@Date 2018/4/23
    *@Param [str]
    *@return java.util.Date
     * 请使用 org.apache.commons.lang3.time.FastDateFormat ,更加方便
    */
    @Deprecated
    public static Date parseDate(String str){
        TemporalAccessor date = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss").withZone(ZoneId.systemDefault()).parse(str);

        return Date.from(Instant.from(date));
    }
    /**
     * 时间戳转日期
     * @param ms
     * @return
     */
    public static Date transForDate(Integer ms){
        if(ms==null){
            ms=0;
        }
        long msl=(long)ms*1000;
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date temp=null;
        if(ms!=null){
            try {
                String str=sdf.format(msl);
                temp=sdf.parse(str);
            } catch (ParseException e) {
                e.printStackTrace();
            }
        }
        return temp;
    }
}

猜你喜欢

转载自my.oschina.net/u/3574106/blog/1824022