Java工具类DateUtils实例详解
本文实例为大家分享了Java工具类DateUtils的具体代码,供大家参考,具体内容如下
importjava.text.ParseException; importjava.text.SimpleDateFormat; importjava.util.Calendar; importjava.util.Date; /** *描述:公共日期工具类 */ publicclassDateUtils{ publicstaticStringDATE_FORMAT="yyyy-MM-dd"; publicstaticStringDATE_TIME_FORMAT="yyyy-MM-ddHH:mm:ss"; publicstaticStringDATE_FORMAT_CHINESE="yyyy年M月d日"; /** *获取当前日期 * * *@return * */ publicstaticStringgetCurrentDate(){ Stringdatestr=null; SimpleDateFormatdf=newSimpleDateFormat(DateUtils.DATE_FORMAT); datestr=df.format(newDate()); returndatestr; } /** *获取当前日期时间 * * *@return * */ publicstaticStringgetCurrentDateTime(){ Stringdatestr=null; SimpleDateFormatdf=newSimpleDateFormat(DateUtils.DATE_TIME_FORMAT); datestr=df.format(newDate()); returndatestr; } /** *获取当前日期时间 * * *@return * */ publicstaticStringgetCurrentDateTime(StringDateformat){ Stringdatestr=null; SimpleDateFormatdf=newSimpleDateFormat(Dateformat); datestr=df.format(newDate()); returndatestr; } publicstaticStringdateToDateTime(Datedate){ Stringdatestr=null; SimpleDateFormatdf=newSimpleDateFormat(DateUtils.DATE_TIME_FORMAT); datestr=df.format(date); returndatestr; } /** *将字符串日期转换为日期格式 * * *@paramdatestr *@return * */ publicstaticDatestringToDate(Stringdatestr){ if(datestr==null||datestr.equals("")){ returnnull; } Datedate=newDate(); SimpleDateFormatdf=newSimpleDateFormat(DateUtils.DATE_FORMAT); try{ date=df.parse(datestr); }catch(ParseExceptione){ date=DateUtils.stringToDate(datestr,"yyyyMMdd"); } returndate; } /** *将字符串日期转换为日期格式 *自定義格式 * *@paramdatestr *@return * */ publicstaticDatestringToDate(Stringdatestr,Stringdateformat){ Datedate=newDate(); SimpleDateFormatdf=newSimpleDateFormat(dateformat); try{ date=df.parse(datestr); }catch(ParseExceptione){ e.printStackTrace(); } returndate; } /** *将日期格式日期转换为字符串格式 * * *@paramdate *@return * */ publicstaticStringdateToString(Datedate){ Stringdatestr=null; SimpleDateFormatdf=newSimpleDateFormat(DateUtils.DATE_FORMAT); datestr=df.format(date); returndatestr; } /** *将日期格式日期转换为字符串格式自定義格式 * *@paramdate *@paramdateformat *@return */ publicstaticStringdateToString(Datedate,Stringdateformat){ Stringdatestr=null; SimpleDateFormatdf=newSimpleDateFormat(dateformat); datestr=df.format(date); returndatestr; } /** *获取日期的DAY值 * * *@paramdate *输入日期 *@return * */ publicstaticintgetDayOfDate(Datedate){ intd=0; Calendarcd=Calendar.getInstance(); cd.setTime(date); d=cd.get(Calendar.DAY_OF_MONTH); returnd; } /** *获取日期的MONTH值 * * *@paramdate *输入日期 *@return * */ publicstaticintgetMonthOfDate(Datedate){ intm=0; Calendarcd=Calendar.getInstance(); cd.setTime(date); m=cd.get(Calendar.MONTH)+1; returnm; } /** *获取日期的YEAR值 * * *@paramdate *输入日期 *@return * */ publicstaticintgetYearOfDate(Datedate){ inty=0; Calendarcd=Calendar.getInstance(); cd.setTime(date); y=cd.get(Calendar.YEAR); returny; } /** *获取星期几 * * *@paramdate *输入日期 *@return * */ publicstaticintgetWeekOfDate(Datedate){ intwd=0; Calendarcd=Calendar.getInstance(); cd.setTime(date); wd=cd.get(Calendar.DAY_OF_WEEK)-1; returnwd; } /** *获取输入日期的当月第一天 * * *@paramdate *输入日期 *@return * */ publicstaticDategetFirstDayOfMonth(Datedate){ Calendarcd=Calendar.getInstance(); cd.setTime(date); cd.set(Calendar.DAY_OF_MONTH,1); returncd.getTime(); } /** *获得输入日期的当月最后一天 * *@paramdate */ publicstaticDategetLastDayOfMonth(Datedate){ returnDateUtils.addDay(DateUtils.getFirstDayOfMonth(DateUtils.addMonth(date,1)),-1); } /** *判断是否是闰年 * * *@paramdate *输入日期 *@return是true否false * */ publicstaticbooleanisLeapYEAR(Datedate){ Calendarcd=Calendar.getInstance(); cd.setTime(date); intyear=cd.get(Calendar.YEAR); if(year%4==0&&year%100!=0|year%400==0){ returntrue; }else{ returnfalse; } } /** *根据整型数表示的年月日,生成日期类型格式 * *@paramyear *年 *@parammonth *月 *@paramday *日 *@return * */ publicstaticDategetDateByYMD(intyear,intmonth,intday){ Calendarcd=Calendar.getInstance(); cd.set(year,month-1,day); returncd.getTime(); } /** *获取年周期对应日 * *@paramdate *输入日期 *@paramiyear *年数負數表示之前 *@return * */ publicstaticDategetYearCycleOfDate(Datedate,intiyear){ Calendarcd=Calendar.getInstance(); cd.setTime(date); cd.add(Calendar.YEAR,iyear); returncd.getTime(); } /** *获取月周期对应日 * *@paramdate *输入日期 *@parami *@return * */ publicstaticDategetMonthCycleOfDate(Datedate,inti){ Calendarcd=Calendar.getInstance(); cd.setTime(date); cd.add(Calendar.MONTH,i); returncd.getTime(); } /** *计算fromDate到toDate相差多少年 * *@paramfromDate *@paramtoDate *@return年数 * */ publicstaticintgetYearByMinusDate(DatefromDate,DatetoDate){ Calendardf=Calendar.getInstance(); df.setTime(fromDate); Calendardt=Calendar.getInstance(); dt.setTime(toDate); returndt.get(Calendar.YEAR)-df.get(Calendar.YEAR); } /** *计算fromDate到toDate相差多少个月 * *@paramfromDate *@paramtoDate *@return月数 * */ publicstaticintgetMonthByMinusDate(DatefromDate,DatetoDate){ Calendardf=Calendar.getInstance(); df.setTime(fromDate); Calendardt=Calendar.getInstance(); dt.setTime(toDate); returndt.get(Calendar.YEAR)*12+dt.get(Calendar.MONTH)- (df.get(Calendar.YEAR)*12+df.get(Calendar.MONTH)); } /** *计算fromDate到toDate相差多少天 * *@paramfromDate *@paramtoDate *@return天数 * */ publicstaticlonggetDayByMinusDate(ObjectfromDate,ObjecttoDate){ Datef=DateUtils.chgObject(fromDate); Datet=DateUtils.chgObject(toDate); longfd=f.getTime(); longtd=t.getTime(); return(td-fd)/(24L*60L*60L*1000L); } /** *计算年龄 * *@parambirthday *生日日期 *@paramcalcDate *要计算的日期点 *@return * */ publicstaticintcalcAge(Datebirthday,DatecalcDate){ intcYear=DateUtils.getYearOfDate(calcDate); intcMonth=DateUtils.getMonthOfDate(calcDate); intcDay=DateUtils.getDayOfDate(calcDate); intbYear=DateUtils.getYearOfDate(birthday); intbMonth=DateUtils.getMonthOfDate(birthday); intbDay=DateUtils.getDayOfDate(birthday); if(cMonth>bMonth||(cMonth==bMonth&&cDay>bDay)){ returncYear-bYear; }else{ returncYear-1-bYear; } } /** *从身份证中获取出生日期 * *@paramidno *身份证号码 *@return * */ publicstaticStringgetBirthDayFromIDCard(Stringidno){ Calendarcd=Calendar.getInstance(); if(idno.length()==15){ cd.set(Calendar.YEAR,Integer.valueOf("19"+idno.substring(6,8)) .intValue()); cd.set(Calendar.MONTH,Integer.valueOf(idno.substring(8,10)) .intValue()-1); cd.set(Calendar.DAY_OF_MONTH, Integer.valueOf(idno.substring(10,12)).intValue()); }elseif(idno.length()==18){ cd.set(Calendar.YEAR,Integer.valueOf(idno.substring(6,10)) .intValue()); cd.set(Calendar.MONTH,Integer.valueOf(idno.substring(10,12)) .intValue()-1); cd.set(Calendar.DAY_OF_MONTH, Integer.valueOf(idno.substring(12,14)).intValue()); } returnDateUtils.dateToString(cd.getTime()); } /** *在输入日期上增加(+)或减去(-)天数 * *@paramdate *输入日期 *@paramimonth *要增加或减少的天数 */ publicstaticDateaddDay(Datedate,intiday){ Calendarcd=Calendar.getInstance(); cd.setTime(date); cd.add(Calendar.DAY_OF_MONTH,iday); returncd.getTime(); } /** *在输入日期上增加(+)或减去(-)月份 * *@paramdate *输入日期 *@paramimonth *要增加或减少的月分数 */ publicstaticDateaddMonth(Datedate,intimonth){ Calendarcd=Calendar.getInstance(); cd.setTime(date); cd.add(Calendar.MONTH,imonth); returncd.getTime(); } /** *在输入日期上增加(+)或减去(-)年份 * *@paramdate *输入日期 *@paramimonth *要增加或减少的年数 */ publicstaticDateaddYear(Datedate,intiyear){ Calendarcd=Calendar.getInstance(); cd.setTime(date); cd.add(Calendar.YEAR,iyear); returncd.getTime(); } /** *將OBJECT類型轉換為Date *@paramdate *@return */ publicstaticDatechgObject(Objectdate){ if(date!=null&&dateinstanceofDate){ return(Date)date; } if(date!=null&&dateinstanceofString){ returnDateUtils.stringToDate((String)date); } returnnull; } publicstaticlonggetAgeByBirthday(Stringdate){ Datebirthday=stringToDate(date,"yyyy-MM-dd"); longsec=newDate().getTime()-birthday.getTime(); longage=sec/(1000*60*60*24)/365; returnage; } /** *@paramargs */ publicstaticvoidmain(String[]args){ //Stringtemp=DateUtil.dateToString(getLastDayOfMonth(newDate()), ///DateUtil.DATE_FORMAT_CHINESE); //Strings=DateUtil.dateToString(DateUtil.addDay(DateUtil.addYear(newDate(),1),-1)); longs=DateUtils.getDayByMinusDate("2012-01-01","2012-12-31"); System.err.println(s); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。