Java日期时间处理常用方法

时间:2021-12-10 22:08:32

虽然是老生常谈,但整理出来还是有点用。

1.由字符串时间得到Date类型时间

    // 由字符串时间得到Date类型时间
    public static Date getDateFrom(String strDate){
        try{
            SimpleDateFormat sdf =   new SimpleDateFormat("yyyy-MM-dd");
            Date date = sdf.parse(strDate);
            return date;
        }
        catch(Exception ex){
            return null;
        }
    }

2.由Date类型时间得到字符串时间

// 由Date类型时间得到字符串时间
    public static String getDateStrFrom(Date date){
        try{
            Format formatter = new SimpleDateFormat("yyyy-MM-dd");
            return formatter.format(date);
        }
        catch(Exception ex){
            return null;
        }
    }

3.得到几天前的时间

    /**
     * 得到几天前的时间
     * 
     * @param d
     * @param day
     * @return
     */
    public static String getDateBefore(Date d, int day) {
        Calendar now = Calendar.getInstance();
        now.setTime(d);
        now.set(Calendar.DATE, now.get(Calendar.DATE) - day);
        
        Format formatter = new SimpleDateFormat("yyyy-MM-dd");
        return formatter.format(now.getTime());
    }

4.使用Date类型的before和after函数进行日期的比较

        for(DateRangeHour drh:lsTen){
            
            for(Object obj:ls){
                DateHour d=(DateHour)obj;
                
                if(d.getDate().before(drh.getEndDate()) && d.getDate().after(drh.getStartDate())){
                    drh.hours+=d.getHours();
                }
            }
        }