时间日期工具类 封装工作中常用的一些时间日期计算方法(转+自己修改)


import java.text.DateFormat;  
import java.text.ParseException;  
import java.text.SimpleDateFormat;  
import java.util.Calendar;  
import java.util.Date;  
import java.util.GregorianCalendar;  

/**
 * @Description 时间日期工具类 封装工作中常用的一些时间日期计算方法等,还可以提供更多的重载方法,用于时间的转化等 
 * @author max 
 * @Date 2013-10-16下午08:24:32
 */
public class DateUtils {  
    private DateUtils(){  
          
    }  
    /**
     * hhmmFormat="HH:mm"
     */  
    public static final String hhmmFormat="HH:mm"; 
    /**
     * MMddFormat="MM-dd"
     */
    public static final String MMddFormat="MM-dd"; 
    /**
     * yyyyFormat="yyyy"
     */
    public static final String yyyyFormat="yyyy";  
    /**
     * yyyyChineseFormat="yyyy年"
     */
    public static final String yyyyChineseFormat="yyyy年";  
    /**
     * yyyyMMddFormat="yyyy-MM-dd"
     */
    public static final String yyyyMMddFormat="yyyy-MM-dd";  
    /**
     * fullFormat="yyyy-MM-dd HH:mm:ss"
     */
    public static final String fullFormat="yyyy-MM-dd HH:mm:ss";
    /**
     * yyyyMMddHHmmss="yyyyMMddHHmmss"
     */
    public static final String yyyyMMddHHmmss="yyyyMMddHHmmss";
    /**
     * strFormat="yyyy/MM/dd HH:mm:ss"
     */
    public static final String strFormat="yyyy/MM/dd HH:mm:ss";  
    /**
     * MMddChineseFormat="MM月dd日"
     */
    public static final String MMddChineseFormat="MM月dd日";  
    /**
     * yyyyMMddChineseFormat="yyyy年MM月dd日"
     */
    public static final String yyyyMMddChineseFormat="yyyy年MM月dd日"; 
    /**
     * fullChineseFormat="yyyy年MM月dd日HH时mm分ss秒"
     */
    public static final String fullChineseFormat="yyyy年MM月dd日HH时mm分ss秒";  
    /**
     * WEEKS={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"}
     */
    public static final String [] WEEKS={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};  
      
    /** 
     * 得到指定时间的时间日期格式 
     * @param date 指定的时间 
     * @param format 时间日期格式 
     * @return 
     */  
    public static String getFormatDateTime(Date date,String format){  
        DateFormat df=new SimpleDateFormat(format);  
        return df.format(date);  
    }  
      
    /** 
     * 判断是否是润年 
     * @param date 指定的时间 
     * @return true:是润年,false:不是润年 
     */  
    public static boolean isLeapYear(Date date) {  
       Calendar cal=Calendar.getInstance();  
       cal.setTime(date);  
       return isLeapYear(cal.get(Calendar.YEAR));  
    }  
      
    /** 
     * 判断是否是润年 
     * @param date 指定的年 
     * @return true:是润年,false:不是润年 
     */  
    public static boolean isLeapYear(int year) {  
       GregorianCalendar calendar = new GregorianCalendar();  
       return calendar.isLeapYear(year);  
    }  
      
    /** 
     * 判断指定的时间是否是今天 
     * @param date 指定的时间 
     * @return true:是今天,false:非今天 
     */  
    public static boolean isInToday(Date date){  
        boolean flag=false;  
        Date now=new Date();  
        String fullFormat=getFormatDateTime(now,DateUtils.yyyyMMddFormat);  
        String beginString=fullFormat+" 00:00:00";  
        String endString=fullFormat+" 23:59:59";  
        DateFormat df=new SimpleDateFormat(DateUtils.fullFormat);  
        try {  
            Date beginTime=df.parse(beginString);  
            Date endTime=df.parse(endString);  
            flag=date.before(endTime)&&date.after(beginTime);  
        } catch (ParseException e) {  
            e.printStackTrace();  
        }  
        return flag;  
    }  
      
    /** 
     * 判断两时间是否是同一天 
     * @param from 第一个时间点 
     * @param to 第二个时间点 
     * @return true:是同一天,false:非同一天 
     */  
    public static boolean isSameDay(Date from,Date to){  
        boolean isSameDay=false;  
        DateFormat df=new SimpleDateFormat(DateUtils.yyyyMMddFormat);  
        String firstDate=df.format(from);  
        String secondDate=df.format(to);  
        isSameDay=firstDate.equals(secondDate);  
        return isSameDay;  
    }  
    /**
     * 方法描述: 判断两时间是否是同一时间,精确到秒
     * 作者:zhanglei 时间:2013-11-2下午04:22:33
     * @param from 第一个时间点 
     * @param to 第二个时间点 
     * @return true:是,false:非 
     */
    public static boolean isSameTime(Date from,Date to){  
        boolean isSameDay=false;  
        DateFormat df=new SimpleDateFormat(DateUtils.yyyyMMddHHmmss);  
        String firstDate=df.format(from);  
        String secondDate=df.format(to);  
        isSameDay=firstDate.equals(secondDate);  
        return isSameDay;  
    }  
    
      
    /** 
     * 求出指定的时间那天是星期几 
     * @param date 指定的时间 
     * @return 星期X 
     */  
    public static String getWeekString(Date date){  
        return DateUtils.WEEKS[getWeek(date)-1];  
    }  
      
    /** 
     * 求出指定时间那天是星期几 
     * @param date 指定的时间 
     * @return 1-7 
     */  
    public static int getWeek(Date date){  
        int week=0;  
        Calendar cal=Calendar.getInstance();  
        cal.setTime(date);  
        week=cal.get(Calendar.DAY_OF_WEEK);  
        return week;  
    }  
      
    /** 
     * 取得指定时间离现在是多少时间以前,如:3秒前,2小时前等 
     * 注意:此计算方法不是精确的 
     * @param date 已有的指定时间 
     * @return 时间段描述 
     */  
    public static String getAgoTimeString(Date date){  
        Date now=new Date();  
        Calendar cal=Calendar.getInstance();  
        cal.setTime(date);  
        Date agoTime=cal.getTime();  
        long mtime=now.getTime()-agoTime.getTime();  
        String str="";  
        long stime=mtime/1000;  
        long minute=60;  
        long hour=60*60;  
        long day=24*60*60;  
        long weeks=7*24*60*60;  
        long months=100*24*60*60;  
        if(stime=minute && stime=hour && stime=day&&stime=weeks&&stime

你可能感兴趣的:(工作小知识点总结)