Java日期时间格式化操作DateUtils 的整理
Java日期时间格式化操作DateUtils的整理
直接上代码,总结了开发过程中经常用到的日期时间格式化操作!
importjava.text.ParseException; importjava.text.SimpleDateFormat; importjava.util.Calendar; importjava.util.Date; importjava.util.concurrent.TimeUnit; /** *ClassName:DateUtils
*Description:时间操作工具类 */ publicclassDateUtils{ privatestaticfinalString[]UNIT_DESC=newString[]{"天","小时","分钟","秒"}; /** *获得当前系统时间,格式为yyyyMMdd * *@return格式化后的时间 */ publicstaticStringcurrentYYYYMMDD(){ returngetStrByDate(newDate(),"yyyyMMdd"); } /** *获得当前系统时间,格式为HHmmss * *@return格式化后的时间 */ publicstaticStringcurrentHHMMSS(){ returngetStrByDate(newDate(),"HHmmss"); } /** *获得当前系统时间,格式为yyyyMMddHHmmss * *@return格式化后的时间 */ publicstaticStringcurrentYYYYMMDDHHmmss(){ returngetStrByDate(newDate(),"yyyyMMddHHmmss"); } /** *根据给定的字符串如:yyyy-MM-ddHH:mm:ss,(必须是这种格式)返回一个日期日期形式 * *@paramstrDate要抛析的字符串,且字符串的形式必须:2007-09-1007:00:00 *@return将字符串抛析成日期的格式返回 *@throwsParseException解析format字段失败 */ publicstaticjava.util.DategetDateByStr(StringstrDate,Stringformat)throwsParseException{ assertstrDate!=null&&format!=null; SimpleDateFormatsimpleDateFormat=newSimpleDateFormat(format); returnsimpleDateFormat.parse(strDate); } /** *根据给定的日期,返回给定的字符串,返回字符串的形式是:yyyy-MM-ddHH:mm:ss * *@paramdate要格式化的日期 *@return将日期格式化后返回的字符串,以这中格式返回:yyyy-MM-ddHH:mm:ss */ publicstaticStringgetStrByDate(Datedate,Stringformat){ assertdate!=null&&format!=null; SimpleDateFormatsimpleDateFormat=newSimpleDateFormat(format); returnsimpleDateFormat.format(date); } /** *得到当前时间 * *@return当前时间 */ publicstaticDategetDayOfMonth(){ Calendarnow=Calendar.getInstance(); returnnow.getTime(); } /** *得到每月第一天 * *@paramdate日期 *@return日期月份的第一天 */ publicstaticDategetFirstDayOfMonth(Datedate){ Calendarnowday=Calendar.getInstance(); nowday.setTime(date); nowday.set(Calendar.DATE,1);//把日期设置为当月第一天 returnnowday.getTime(); } /** *得到每月最后一天 * *@paramdate日期 *@return日期月份最后一天 */ publicstaticDategetLastDayOfMonth(Datedate){ Calendarnowday=Calendar.getInstance(); nowday.setTime(date); nowday.set(Calendar.DATE,1);//把日期设置为当月第一天 nowday.roll(Calendar.DATE,-1);//日期回滚一天,也就是最后一天 returnnowday.getTime(); } /** *获取当前年份格式:yyyy * *@paramdate当前时间 *@returnyear */ publicstaticStringgetCurrYear(Datedate){ Calendarcalendar=Calendar.getInstance(); calendar.setTime(date); SimpleDateFormatdateFormat=newSimpleDateFormat("yyyy"); DatecurrYear=calendar.getTime(); returnString.valueOf(dateFormat.format(currYear)); } /** *获取当前月份格式:MM * *@paramdate当前时间 *@returnDate */ publicstaticStringgetCurrMonth(Datedate){ Calendarcalendar=Calendar.getInstance(); calendar.setTime(date); SimpleDateFormatdateFormat=newSimpleDateFormat("MM"); DatecurrMonth=calendar.getTime(); returnString.valueOf(dateFormat.format(currMonth)); } /** *得到此日期的最后一天 * *@paramd日期 *@return最后一天 */ publicstaticDategetLastDayByDate(Dated){ Calendarnewday=Calendar.getInstance(); newday.setTime(d); intlastday; intmonth=newday.get(Calendar.MONTH); do{ lastday=newday.get(Calendar.DAY_OF_MONTH); newday.add(Calendar.DAY_OF_MONTH,1); }while(newday.get(Calendar.MONTH)==month); newday.set(Calendar.MONTH,month); newday.set(Calendar.DAY_OF_MONTH,lastday); returnnewday.getTime(); } /** *将yyyyMMdd的字符窜转化成yyyy-MM-dd * *@paramdateStringyyyyMMdd格式的日期 *@returnyyyy-MM-dd格式的日期 *@throwsParseException */ publicstaticStringformatyyyyMMdd(StringdateString)throwsParseException{ SimpleDateFormatsimpleDateFormat=newSimpleDateFormat("yyyyMMdd"); Datedate=simpleDateFormat.parse(dateString); SimpleDateFormatformatStr=newSimpleDateFormat("yyyy-MM-dd"); returnformatStr.format(date); } /** *将yyyyMMdd的字符窜转化成yyyy-MM-ddHH:mm:ss * *@paramdateString *@return *@throwsParseException */ publicstaticStringformatyyyyMMddHHmmss(StringdateString)throwsParseException{ SimpleDateFormatsimpleDateFormat=newSimpleDateFormat("yyyyMMddHHmmss"); Datedate=simpleDateFormat.parse(dateString); SimpleDateFormatformatStr=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss"); returnformatStr.format(date); } /** *获取当前年份格式:yyyy * *@returnDate */ publicstaticintgetCurrYear(){ Calendarcalendar=Calendar.getInstance(); SimpleDateFormatdateFormat=newSimpleDateFormat("yyyy"); DatecurrYearFirst=calendar.getTime(); returnInteger.valueOf(dateFormat.format(currYearFirst)); } /** *获取当前时间前三月 * *@returnDate */ publicstaticDategetLastThreeMonths(){ Calendarcalendar=Calendar.getInstance(); calendar.add(Calendar.MONTH,-3); calendar.add(Calendar.DAY_OF_MONTH,1); returncalendar.getTime(); } /** *获取当前时间前一个月 * *@returnDate */ publicstaticDategetLastOneMonths(){ Calendarcalendar=Calendar.getInstance(); calendar.add(Calendar.MONTH,-1); calendar.add(Calendar.DAY_OF_MONTH,1); returncalendar.getTime(); } /** *获取当前时间前六个月 * *@returnDate */ publicstaticDategetLastSixMonths(){ Calendarcalendar=Calendar.getInstance(); calendar.add(Calendar.MONTH,-6); calendar.add(Calendar.DAY_OF_MONTH,1); returncalendar.getTime(); } /** *获取某年第一天日期 * *@paramyear年份 *@returnDate */ publicstaticDategetCurrYearFirst(intyear){ Calendarcalendar=Calendar.getInstance(); calendar.clear(); calendar.set(Calendar.YEAR,year); returncalendar.getTime(); } /** *获取某年最后一天日期 * *@paramyear年份 *@returnDate */ publicstaticDategetCurrYearLast(intyear){ Calendarcalendar=Calendar.getInstance(); calendar.clear(); calendar.set(Calendar.YEAR,year); calendar.roll(Calendar.DAY_OF_YEAR,-1); returncalendar.getTime(); } /** *格式化时间 * *@paramdate时间 *@paramformat格式化模板 *@return格式化后的时间 */ publicstaticStringdate2Str(Datedate,Stringformat){ returngetStrByDate(date,format); } /** *获得指定日期的前一天yyyy-MM-dd *@paramdate *@return */ publicstaticStringgetSpecifiedDayBefore(Datedate,StringdateFormat){ if(date==null)returnnull; Calendarc=Calendar.getInstance(); c.setTime(date); intday=c.get(Calendar.DATE); c.set(Calendar.DATE,day-1); StringdayBefore=newSimpleDateFormat(dateFormat).format(c.getTime()); returndayBefore; } /** *获得指定日期的后一天yyyy-MM-dd * *@paramdate *@return */ publicstaticStringgetSpecifiedDayAfter(Datedate,StringdateFormat){ if(date==null)returnnull; Calendarc=Calendar.getInstance(); c.setTime(date); intday=c.get(Calendar.DATE); c.set(Calendar.DATE,day+1); StringdayAfter=newSimpleDateFormat(dateFormat).format(c.getTime()); returndayAfter; } /** *格式化持续时间
*将持续时间,格式化为xx天xx小时xx分钟xx秒如果"xx"为0自动缺省。 * *@paramseconds持续时间,单位(秒) *@return格式化后的字符串 *@seeTimeUnit时间单位转换工具 *@since1.5 */ publicstaticStringconvertSeconds2Str(longseconds){ StringBuildersb=newStringBuilder(); long[]date={TimeUnit.SECONDS.toDays(seconds),TimeUnit.SECONDS.toHours(seconds)%24,TimeUnit.SECONDS.toMinutes(seconds)%60,TimeUnit.SECONDS.toSeconds(seconds)%60}; for(inti=0;i0)sb.append(l).append(UNIT_DESC[i]); } returnsb.toString(); } /** *格式化持续时间 *将持续时间,格式化为xx天xx小时xx分钟xx秒如果"xx"为0自动缺省。 * *@paramseconds持续时间,单位(分钟) *@return格式化后的字符串 *@seeTimeUnit时间单位转换工具 *@since1.5 */ publicstaticStringconvertMinute2Str(longminute){ StringBuildersb=newStringBuilder(); long[]date={TimeUnit.SECONDS.toHours(minute)%24,TimeUnit.SECONDS.toMinutes(minute)%60,TimeUnit.SECONDS.toSeconds(minute)%60}; for(inti=0;i 0)sb.append(l).append(UNIT_DESC[i]); } returnsb.toString(); } }
以上就是关于java日期格式化操作的所有内容,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!