DateUtil类

来源:互联网 发布:国外工作招聘信息知乎 编辑:程序博客网 时间:2024/05/10 01:20



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

// import java.util.TimeZone;



public class DateUtil {

    public static final String FORMAT_SHORT_DATE="yyyy-MM-dd";
    public static final String FORMAT_LONG_DATE="yyyy-MM-dd HH:mm:ss";
    
    private static DateFormat df = new SimpleDateFormat(FORMAT_SHORT_DATE);

    private static DateFormat longdf = new SimpleDateFormat(FORMAT_LONG_DATE);

    /**
     * 取得当前时间
     *
     * @return
     */
    public static Date getCurrentDate() {
        return GregorianCalendar.getInstance().getTime();
    }

    /**
     *
     * @return
     */
    public static String[] getLimitedDate() {
    return getLimitedDate(30);
    }

    /**
     * 取得限定时间范围,查询条件中的时间对
     *
     * @return String[0]开始时间-一个月前时间,Date[1]结束时间-当前时间
     */
    public static String[] getLimitedDate(int day) {
    String[] rtn = new String[2];
    rtn[1] = df.format(getCurrentDate());
    Calendar tmp = GregorianCalendar.getInstance();
    tmp.add(Calendar.DAY_OF_YEAR, day * (-1));
    rtn[0] = df.format(tmp.getTime());
    return rtn;
    }
    
    /**
     * 得到一年前的时间
     * @return
     */
    public static Date getLastYear(){
        Calendar   calendar   =   GregorianCalendar.getInstance();
        calendar.add(GregorianCalendar.YEAR,   -1);
        return calendar.getTime();
    }
    /**
     * 得到一年前的时间字符串
     * @return
     */
    public static String getLastYearStr(){
        return longdf.format( getLastYear() );
    }
    
    public static String getDateToString(Date date){
        return df.format(date);
    }
    
    public static String getLongTimeToString(long date){
        return longdf.format(date);
    }


    public static Date[] getDatePairsByNow(int day) {
    Date[] rtn = new Date[2];
    rtn[1] = getCurrentDate();
    Calendar tmp = GregorianCalendar.getInstance();
    tmp.add(Calendar.DAY_OF_YEAR, day * (-1));
    rtn[0] = tmp.getTime();
    return rtn;
    }

    /**
     * 将字符串解析为时间
     *
     * @param str
     *                str的格式必须为yyyy-MM-dd HH:mm:ss
     * @return
     */
    public static Date parseStringToDate(String str) {
    if (str == null || "".equals(str))
        return null;

    Date date = null;
    try {
        date = longdf.parse(str);
    } catch (Exception e) {
        date = null;
    }
    return date;
    }
    
    /**
     * 将字符串解析为时间
     *
     * @param str
     *                str的格式必须为yyyy-MM-dd
     * @return
     */
    public static Date parseStringDate(String str) {
    if (str == null || "".equals(str))
        return null;

    Date date = null;
    try {
        date = df.parse(str);
    } catch (Exception e) {
        date = null;
    }
    return date;
    }
    
    public static Date parseStringDate(String str,String format) {
        if (str == null || "".equals(str))
            return null;

        Date date = null;
        try {
            if(format == null || format.length() == 0){
                date = df.parse(str);
            }else{
                DateFormat df2 = new SimpleDateFormat(format);
                date = df2.parse(str);
            }
            
        } catch (Exception e) {
            date = null;
        }
        return date;
    }

    public static Calendar getCalendar(String dates) {
    Calendar c = Calendar.getInstance();
    try {
        Date date = df.parse(dates);
        c.setTime(date);
    } catch (ParseException e) {
        c = null;
    }
    return c;
    }
    public static double getDateReduce(Date startDate,Date endDate){
        double num=0;
        if(startDate!=null&&endDate!=null){
            num=(endDate.getTime()-startDate.getTime())/(1000*60*60*24);
        }
        return num;
    }
    
    public static boolean isWorkTime(){       
//        Date currDate=new Date();
//        Date workStartDate;
//        Date workEndDate;
//        int day;
//        Calendar calendar=Calendar.getInstance();
//        calendar.setTime(currDate);
//        day=calendar.get(Calendar.DAY_OF_WEEK)-1;
//        if(day==0||day==6){
//            return false;
//        }
//        String date=calendar.get(Calendar.YEAR)+"-"+(calendar.get(calendar.MONTH)+1)+"-"+calendar.get(Calendar.DATE);
//        workStartDate=parseStringToDate(date+" 6:0:0");
//        workEndDate=parseStringToDate(date+" 18:0:0");
//        if((currDate.compareTo(workStartDate))==-1){
//            return false;
//        }
//        if((currDate.compareTo(workEndDate))==1){
//            return false;
//        }
        return false;
    }
    public static String  getDateScope(Date startDate,Date endDate){
        double num=0;
        String dateScope="";
        if(startDate!=null&&endDate!=null){
            num=(endDate.getTime()-startDate.getTime())/(1000*60*60*24);
        }
        if(num>0&&num<31)
        {
            dateScope="不到一个月";
        }
        if(num>=31&&num<90)
        {
            dateScope="不到三个月内";
        }
         if(num>=91&&num<180)
        {
            dateScope="不到半年";
        }
         if(num>=180&&num<=365)
        {
            dateScope="不到一年";
        }
        if(num>365)
        {
            dateScope="超过一年";
        }
        return dateScope;
    }
    
    /**
     * 得到当天之前某一天或之后某一天的日期
     * @param interval    间隔的天数: 正数代表之后多少天,负数代表之前多少天<br>
     *                     比如:输入1,则返回第二天的日期; 输入-1,则返回昨天的日期
     * @return
     */
    public static Date getBefOrAftDate(int interval){
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.DATE, interval);    //得到前一天
        return calendar.getTime();
    }
    
    
    /**
     * 获取比当前日期早多少天或者晚多少天的日期 例如 前五天 -5    后五天   5
     * @param days
     * @param format 返回日期的格式
     * @return 格式化好的字符串
     */
    public static String DateBefAft(int days,String format){
     //
     if(format==null || "".equals(format))
      format="yyyy-MM-dd";
      Calendar now = Calendar.getInstance();
      SimpleDateFormat formatter = new SimpleDateFormat(format);
      now.add(Calendar.DAY_OF_YEAR,days);
      return formatter.format(now.getTime());
    }

    /**
     * 格式化 Date 类型的日期  
     * @param date 传入日期
     * @param format 设定日期的显示格式 默认 2006-12-25
     * @return 格式化后的日期
     */
    public static String DatetoString(Date date,String format){
     if(format==null || "".equals(format))
      format="yyyy-MM-dd";
      SimpleDateFormat formatter = new SimpleDateFormat(format);
      return formatter.format(date);
    }
    
    /**
     * 格式化 Timestamp 类型的日期  
     * @param timestamp 传入日期
     * @param format 设定日期的显示格式 默认 2006-12-25
     * @return 格式化后的日期
     */
    public static String TimestamptoString(Timestamp timestamp,String format){
     if(format==null || "".equals(format))
      format="yyyy-MM-dd";
      SimpleDateFormat formatter = new SimpleDateFormat(format);
      return formatter.format(timestamp);
    }
    
    
    

    
}


原创粉丝点击