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]