对时间TimeUtils操作总结(1)

自己对时间操作的时候一些方法

public static final SimpleDateFormat DATETIME_FORMAT_DATE = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    public static final SimpleDateFormat DATE_FORMAT_DATE = new SimpleDateFormat("yyyy-MM-dd");
    public static final SimpleDateFormat DATE_FORMAT_HOURS = new SimpleDateFormat("HH:mm");
    public static final SimpleDateFormat DATE_FORMAT_HOURS_MINUTES_SECOND = new SimpleDateFormat("HH:mm:ss");

    public String getToday23() {
        return getToday23(new Date());
    }
    public String getToday23(Date date) {
        Date time = getDesignatedTimeOfDay(date, 23, 59, 59, 59);
        String time23 = formatDateByPattern(time, "yyyy-MM-dd HH:mm:ss");
        return time23;
    }

    public String getToday0(){
        return getToday0(new Date());
    }
    public String getToday0(Date date){
        Date time = getDesignatedTimeOfDay(date, 0, 0, 0, 0);
        String time0 = formatDateByPattern(time, "yyyy-MM-dd HH:mm:ss");
        return time0;
    }
    public Date getDesignatedTimeOfDay(Date date,Integer hour,Integer minute,Integer second,Integer millisecond){
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.set(Calendar.HOUR_OF_DAY, hour);
        calendar.set(Calendar.MINUTE, minute);
        calendar.set(Calendar.SECOND, second);
        calendar.set(Calendar.MILLISECOND, millisecond);
        Date time = calendar.getTime();
        log.info("getDesignatedTimeOfDay--->"+time);
        return time;
    }

    /**
     * @param date
     * @param dateFormat
     * @return
     */
    public  String formatDateByPattern(Date date, String dateFormat) {
        SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
        String formatTimeStr = null;
        if (date != null) {
            formatTimeStr = sdf.format(date);
        }
        return formatTimeStr;
    }

    public Date getBeforeDay(Date date){
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.DATE, -1); //得到回前一天答
        return calendar.getTime();
    }
    public Date getAfterDay(Date date){
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        //得到回后一天答
        calendar.add(Calendar.DATE, +1);
        return calendar.getTime();
    }

    public String getAfterDayStr(Date date, String dateFormat){
        SimpleDateFormat format = new SimpleDateFormat(dateFormat);
        Date afterDay = getAfterDay(date);
        return format.format(afterDay);
    }
    public String  getBeforeDay(Date date,DateFormat df){
        return df.format(getBeforeDay(date));
    }

    public String getCronDate(String date){
        String[] split = date.split(":");
        String str = split[2]+ " "+split[1]+" "+split[0]+" * * ?";
        return str;
    }

    /**
     * 判断当前小时 是否在某两个时间之间
     * @param start_time
     * @param end_time
     * @return
     */
    public boolean isBetweenHours(String start_time,String end_time){
        boolean flag = false;
        try {
            String format = "HH:mm";
            Calendar now = Calendar.getInstance();
            int hours = now.get(Calendar.HOUR_OF_DAY);
            int minute  = now.get(Calendar.MINUTE);
            int second  = now.get(Calendar.SECOND);
            String now_time = hours+":"+minute+":"+second;
            Date nowTime = new SimpleDateFormat(format).parse(now_time);
            Date startTime = new SimpleDateFormat(format).parse(start_time);
            Date endTime = new SimpleDateFormat(format).parse(end_time);
            flag = isEffectiveDate(nowTime, startTime, endTime);
        }catch (Exception e){

        }
        return flag;
    }

    /**
     * 判断当前小时 是否在某两个时间之间
     * @param start_time
     * @param end_time
     * @return
     */
    public boolean isBetweenDate(String start_time,String end_time,String dateForamte){
        boolean flag = false;
        try {
            SimpleDateFormat df = new SimpleDateFormat(dateForamte);
            String format = df.format(new Date());
            Date nowTime = df.parse(format);
            Date startTime = new SimpleDateFormat(format).parse(start_time);
            Date endTime = new SimpleDateFormat(format).parse(end_time);
            flag = isEffectiveDate(nowTime, startTime, endTime);
        }catch (Exception e){

        }
        return flag;
    }
    /**
     * 判断当前时间是否在[startTime, endTime]区间,注意时间格式要一致
     *
     * @param nowTime 当前时间
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return
     * @author jqlin
     */
    public  boolean isEffectiveDate(Date nowTime, Date startTime, Date endTime) {
        if (nowTime.getTime() == startTime.getTime()
                || nowTime.getTime() == endTime.getTime()) {
            return true;
        }

        Calendar date = Calendar.getInstance();
        date.setTime(nowTime);

        Calendar begin = Calendar.getInstance();
        begin.setTime(startTime);

        Calendar end = Calendar.getInstance();
        end.setTime(endTime);

        if (date.after(begin) && date.before(end)) {
            return true;
        } else {
            return false;
        }
    }

    /**
     * beforeDate 在 afterDate 之前
     * @param beforeDate
     * @param afterDate
     * @return
     */
    public boolean compareHours(String beforeDate,String afterDate){
        boolean flag = false;
        try {
            SimpleDateFormat dateFormat=new SimpleDateFormat("HH:mm:ss");
            Date date=dateFormat.parse(beforeDate);
            Date date2=dateFormat.parse(afterDate);
            flag = date2.after(date);
        }catch (Exception e){

        }
        return flag;
    }

    /**
     * 获取当前时间时分秒
     * @return
     */
    public String getCurrentHMS(){
        String format ="";
        try {
            SimpleDateFormat df = LilyTimeUtils.DATE_FORMAT_HOURS_MINUTES_SECOND;
            format = df.format(new Date());
        }catch (Exception e){

        }
        return format;
    }

    /**
     * 获取某个时间  多少分钟之后的时间
     * @param oldTime
     * @param add
     * @return
     * @throws Exception
     */
    public  String  getMinTimeAfter (String oldTime,String add){
        String returnTime = "";
        try {
            int addMit = Integer.valueOf(add);
            DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date date = df.parse(oldTime);
            Date expireTime = new Date(date.getTime() + addMit*60*1000);
            returnTime = df.format(expireTime);
        }catch (Exception e){
            e.printStackTrace();
        }

        return returnTime;
    }

  

原文地址:https://www.cnblogs.com/mfser/p/13255912.html