n.wang 发表于 2013-2-3 10:32:20

java日期操作的公有类

import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import com.itbys.frame.common.Convert;public class DateHelper {    public static final String yyyy_MM_dd_HH_mm_ss = "yyyy-MM-dd HH:mm:ss";    public static final String alltime = "yyyy-MM-dd HH:mm:ss.SSS";    public static final String yyyy_mm = "yyyy-MM";    public static final String yyyy = "yyyy";    public static final String yyyy_mm_dd = "yyyy-MM-dd";    public static final String CHINESE_PATTERN = "yyyy年MM月dd日";      public static void main(String[] args) {      System.out.println(getmonthdiff("2011-03-01","2011-11-05"));    }         public static String chinadate(String datetime){         return Convert.subString0of10(Convert.filter(datetime)).replaceFirst("-","年").replaceFirst("-","月")+"日";   }             public static Date parseDate(String dateStr)    {      return parseDate(dateStr, yyyy_MM_dd_HH_mm_ss);    }    public static Date parseDate(String dateStr, String pattern)    {      if (dateStr == null || dateStr.trim().equals("") || dateStr.trim().equals("null"))            return null;      SimpleDateFormat sdf = new SimpleDateFormat(pattern);      try {            return sdf.parse(dateStr);      }      catch (ParseException e) {            throw new RuntimeException(e);      }    }      public static String getdayaddone(String date){      SimpleDateFormat sdf=new SimpleDateFormat(yyyy_mm_dd);      Calendar cal=Calendar.getInstance();      try {            cal.setTime(sdf.parse(date));            cal.add(Calendar.DATE, 1);                  } catch (ParseException e) {            e.printStackTrace();      }      return sdf.format(cal.getTime());    }      public static String getyearadd(String yyyymmdd,int add){      SimpleDateFormat sdf=new SimpleDateFormat(yyyy_mm_dd);      Calendar cal=Calendar.getInstance();      try {            cal.setTime(sdf.parse(yyyymmdd));            cal.add(Calendar.YEAR, add);                  } catch (ParseException e) {            e.printStackTrace();      }      return sdf.format(cal.getTime());    }            public static String getmonthadd(String yyyymmdd,int add){      SimpleDateFormat sdf=new SimpleDateFormat(yyyy_mm_dd);      Calendar cal=Calendar.getInstance();      try {            cal.setTime(sdf.parse(yyyymmdd));            cal.add(Calendar.MONTH, add);                  } catch (ParseException e) {            e.printStackTrace();      }      return sdf.format(cal.getTime());    }            public static String getdayadd(String yyyymmdd,int add){      SimpleDateFormat sdf=new SimpleDateFormat(yyyy_mm_dd);      Calendar cal=Calendar.getInstance();      try {            cal.setTime(sdf.parse(yyyymmdd));            cal.add(Calendar.DATE, add);                  } catch (ParseException e) {            e.printStackTrace();      }      return sdf.format(cal.getTime());    }            public static int getmonthdiff(String mintime,String maxtime){      if(Integer.parseInt(mintime.replaceAll("-", ""))>Integer.parseInt(maxtime.replaceAll("-", ""))){            return -1;      }         int changemonth=0;      while(!mintime.substring(0, 7).equals(maxtime.substring(0, 7))){            mintime=getmonthadd(mintime, 1);changemonth++;      }      return changemonth;    }                public static String getFirstDayOfMonth(Date date ){      Calendar c = Calendar.getInstance();      c.setTime(date);                return format(c.getTime(), "yyyy-MM")+"-01";    }    public static String format(Date date) {      if (date == null)            return "";      SimpleDateFormat sdf = new SimpleDateFormat(yyyy_MM_dd_HH_mm_ss);      return sdf.format(date);    }      public static String format(Date date, String pattern) {      if (date == null)            return "";      SimpleDateFormat sdf = new SimpleDateFormat(pattern);      return sdf.format(date);    }      public static Date parse(String datetime, String pattern) throws Exception {      if (datetime == null)            return new Date();      SimpleDateFormat sdf = new SimpleDateFormat(pattern);      return sdf.parse(datetime);    }       public static String getLastDayOfMonth(Date date ){      Calendar c = Calendar.getInstance();      c.setTime(date);      c.add(Calendar.MONTH, 1);      c.set(Calendar.DAY_OF_MONTH, 1);      c.add(Calendar.DAY_OF_MONTH,-1);                return format(c.getTime(), yyyy_mm_dd);    }       public static String getLastDayOfMonth(String dateStr ){      Calendar c = Calendar.getInstance();      c.setTime(parseDate(dateStr,yyyy_mm_dd));      c.add(Calendar.MONTH, 1);      c.set(Calendar.DAY_OF_MONTH, 1);      c.add(Calendar.DAY_OF_MONTH,-1);                return format(c.getTime(), yyyy_mm_dd);    }       public static int getYear(){      Calendar cal= Calendar.getInstance();      return cal.get(Calendar.YEAR);    }       public static int getMonth(){      Calendar cal= Calendar.getInstance();      return cal.get(Calendar.MONTH)+1;    }       public static String getMonth(Date date ){      Calendar c = Calendar.getInstance();      c.setTime(date);      String sjyf = DateHelper.format(c.getTime(),"yyyyMM");                return sjyf;    }         public static String getID(){      Calendar cal= Calendar.getInstance();      String sjyf = DateHelper.format(cal.getTime(),"yyyyMMddHHmmss");                return sjyf;    }      public static String getMonth(Date date,String pattern ){      Calendar c = Calendar.getInstance();      c.setTime(date);      String sjyf = DateHelper.format(c.getTime(),pattern);                return sjyf;    }       public static String getYearMonth(){      return getymdd(yyyy_mm);    }       public static String getymd(){      return getymdd(yyyy_mm_dd);    }       public static String getymdhms(){      return getymdd(yyyy_MM_dd_HH_mm_ss);    }         public static String getalltime(){      return getymdd(alltime);    }      public static String getymdd(String pattern){      SimpleDateFormat sdf = new SimpleDateFormat(pattern);      Calendar cal=Calendar.getInstance();      return sdf.format(cal.getTime());    }      public static int getdiffdate(String datetime,Date date) throws Exception{      SimpleDateFormat sdf = new SimpleDateFormat(yyyy_mm_dd);      datetime=sdf.format(sdf.parse(datetime)).replaceAll("-", "");      int lefttime=Integer.parseInt(datetime.toString());      int righttime=Integer.parseInt(sdf.format(date.getTime()).replaceAll("-", "").trim());      if(lefttime>righttime){//大于            return 1;      } else if(lefttime<righttime){//小于            return -1;      }else{// 等于            return 0;      }    }               public static String getDateMonth(String sdate){      Date date = null;      DateFormat df = DateFormat.getDateInstance();      try {            date = df.parse(sdate);      } catch (ParseException e) {            e.printStackTrace();      }      SimpleDateFormat sdf = new SimpleDateFormat("MM");      return sdf.format(date);    }         public static String getDateYmd(String sdate,String pattern){      Date date = null;      DateFormat df = DateFormat.getDateInstance();      try {            date = df.parse(sdate);      } catch (ParseException e) {            e.printStackTrace();      }      SimpleDateFormat sdf = new SimpleDateFormat(pattern);      return sdf.format(date);    }         public static String stringToDate(String sdate){      Date date = null;      DateFormat df = DateFormat.getDateTimeInstance();      try {            date = df.parse(sdate);      } catch (ParseException e) {            return ""; //sdate 为空 或 "" 会出现异常时 直接返回空      }      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");            return sdf.format(date);    }         public static String stringToDate(String sdate,String pattern){      Date date = null;      DateFormat df = DateFormat.getDateTimeInstance();      try {            date = df.parse(sdate);      } catch (ParseException e) {            return ""; //sdate 为空 或 "" 会出现异常时 直接返回空      }      SimpleDateFormat sdf = new SimpleDateFormat(pattern);      return sdf.format(date);    }               public static long getDateDay(String startDate, String endDate) {      SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");      long nd = 1000 * 24 * 60 * 60;                long diff = 0;      long day = 0;                try {            diff = sd.parse(endDate).getTime() - sd.parse(startDate).getTime();            day = diff / nd;                              } catch (ParseException e) {            e.printStackTrace();      }      return day;    }    }
页: [1]
查看完整版本: java日期操作的公有类