生活随笔
收集整理的這篇文章主要介紹了
java日期工具类DateUtil
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。
DateUtil類
[java]?view plain?copy
package?com.util;????import?java.text.SimpleDateFormat;??import?java.util.ArrayList;??import?java.util.Calendar;??import?java.util.Date;??import?java.util.HashMap;??import?java.util.List;??import?java.util.Map;????public?class?DateUtil?{????????/**??????*?獲取SimpleDateFormat??????*?@param?parttern?日期格式??????*?@return?SimpleDateFormat對象??????*?@throws?RuntimeException?異常:非法日期格式??????*/??????private?static?SimpleDateFormat?getDateFormat(String?parttern)?throws?RuntimeException?{??????????return?new?SimpleDateFormat(parttern);??????}????????/**??????*?獲取日期中的某數值。如獲取月份??????*?@param?date?日期??????*?@param?dateType?日期格式??????*?@return?數值??????*/??????private?static?int?getInteger(Date?date,?int?dateType)?{??????????Calendar?calendar?=?Calendar.getInstance();??????????calendar.setTime(date);??????????return?calendar.get(dateType);??????}????????????/**??????*?增加日期中某類型的某數值。如增加日期??????*?@param?date?日期字符串??????*?@param?dateType?類型??????*?@param?amount?數值??????*?@return?計算后日期字符串??????*/??????private?static?String?addInteger(String?date,?int?dateType,?int?amount)?{??????????String?dateString?=?null;??????????DateStyle?dateStyle?=?getDateStyle(date);??????????if?(dateStyle?!=?null)?{??????????????Date?myDate?=?StringToDate(date,?dateStyle);??????????????myDate?=?addInteger(myDate,?dateType,?amount);??????????????dateString?=?DateToString(myDate,?dateStyle);??????????}??????????return?dateString;??????}????????????/**??????*?增加日期中某類型的某數值。如增加日期??????*?@param?date?日期??????*?@param?dateType?類型??????*?@param?amount?數值??????*?@return?計算后日期??????*/??????private?static?Date?addInteger(Date?date,?int?dateType,?int?amount)?{??????????Date?myDate?=?null;??????????if?(date?!=?null)?{??????????????Calendar?calendar?=?Calendar.getInstance();??????????????calendar.setTime(date);??????????????calendar.add(dateType,?amount);??????????????myDate?=?calendar.getTime();??????????}??????????return?myDate;??????}????????/**??????*?獲取精確的日期??????*?@param?timestamps?時間long集合??????*?@return?日期??????*/??????private?static?Date?getAccurateDate(List<Long>?timestamps)?{??????????Date?date?=?null;??????????long?timestamp?=?0;??????????Map<Long,?long[]>?map?=?new?HashMap<Long,?long[]>();??????????List<Long>?absoluteValues?=?new?ArrayList<Long>();????????????if?(timestamps?!=?null?&&?timestamps.size()?>?0)?{??????????????if?(timestamps.size()?>?1)?{??????????????????for?(int?i?=?0;?i?<?timestamps.size();?i++)?{??????????????????????for?(int?j?=?i?+?1;?j?<?timestamps.size();?j++)?{??????????????????????????long?absoluteValue?=?Math.abs(timestamps.get(i)?-?timestamps.get(j));??????????????????????????absoluteValues.add(absoluteValue);??????????????????????????long[]?timestampTmp?=?{?timestamps.get(i),?timestamps.get(j)?};??????????????????????????map.put(absoluteValue,?timestampTmp);??????????????????????}??????????????????}????????????????????//?有可能有相等的情況。如2012-11和2012-11-01。時間戳是相等的??????????????????long?minAbsoluteValue?=?-1;??????????????????if?(!absoluteValues.isEmpty())?{??????????????????????//?如果timestamps的size為2,這是差值只有一個,因此要給默認值??????????????????????minAbsoluteValue?=?absoluteValues.get(0);??????????????????}??????????????????for?(int?i?=?0;?i?<?absoluteValues.size();?i++)?{??????????????????????for?(int?j?=?i?+?1;?j?<?absoluteValues.size();?j++)?{??????????????????????????if?(absoluteValues.get(i)?>?absoluteValues.get(j))?{??????????????????????????????minAbsoluteValue?=?absoluteValues.get(j);??????????????????????????}?else?{??????????????????????????????minAbsoluteValue?=?absoluteValues.get(i);??????????????????????????}??????????????????????}??????????????????}????????????????????if?(minAbsoluteValue?!=?-1)?{??????????????????????long[]?timestampsLastTmp?=?map.get(minAbsoluteValue);??????????????????????if?(absoluteValues.size()?>?1)?{??????????????????????????timestamp?=?Math.max(timestampsLastTmp[0],?timestampsLastTmp[1]);??????????????????????}?else?if?(absoluteValues.size()?==?1)?{??????????????????????????//?當timestamps的size為2,需要與當前時間作為參照??????????????????????????long?dateOne?=?timestampsLastTmp[0];??????????????????????????long?dateTwo?=?timestampsLastTmp[1];??????????????????????????if?((Math.abs(dateOne?-?dateTwo))?<?100000000000L)?{??????????????????????????????timestamp?=?Math.max(timestampsLastTmp[0],?timestampsLastTmp[1]);??????????????????????????}?else?{??????????????????????????????long?now?=?new?Date().getTime();??????????????????????????????if?(Math.abs(dateOne?-?now)?<=?Math.abs(dateTwo?-?now))?{??????????????????????????????????timestamp?=?dateOne;??????????????????????????????}?else?{??????????????????????????????????timestamp?=?dateTwo;??????????????????????????????}??????????????????????????}??????????????????????}??????????????????}??????????????}?else?{??????????????????timestamp?=?timestamps.get(0);??????????????}??????????}????????????if?(timestamp?!=?0)?{??????????????date?=?new?Date(timestamp);??????????}??????????return?date;??????}????????/**??????*?判斷字符串是否為日期字符串??????*?@param?date?日期字符串??????*?@return?true?or?false??????*/??????public?static?boolean?isDate(String?date)?{??????????boolean?isDate?=?false;??????????if?(date?!=?null)?{??????????????if?(StringToDate(date)?!=?null)?{??????????????????isDate?=?true;??????????????}??????????}??????????return?isDate;??????}????????/**??????*?獲取日期字符串的日期風格。失敗返回null。??????*?@param?date?日期字符串??????*?@return?日期風格??????*/??????public?static?DateStyle?getDateStyle(String?date)?{??????????DateStyle?dateStyle?=?null;??????????Map<Long,?DateStyle>?map?=?new?HashMap<Long,?DateStyle>();??????????List<Long>?timestamps?=?new?ArrayList<Long>();??????????for?(DateStyle?style?:?DateStyle.values())?{??????????????Date?dateTmp?=?StringToDate(date,?style.getValue());??????????????if?(dateTmp?!=?null)?{??????????????????timestamps.add(dateTmp.getTime());??????????????????map.put(dateTmp.getTime(),?style);??????????????}??????????}??????????dateStyle?=?map.get(getAccurateDate(timestamps).getTime());??????????return?dateStyle;??????}????????/**??????*?將日期字符串轉化為日期。失敗返回null。??????*?@param?date?日期字符串??????*?@return?日期??????*/??????public?static?Date?StringToDate(String?date)?{??????????DateStyle?dateStyle?=?null;??????????return?StringToDate(date,?dateStyle);??????}????????/**??????*?將日期字符串轉化為日期。失敗返回null。??????*?@param?date?日期字符串??????*?@param?parttern?日期格式??????*?@return?日期??????*/??????public?static?Date?StringToDate(String?date,?String?parttern)?{??????????Date?myDate?=?null;??????????if?(date?!=?null)?{??????????????try?{??????????????????myDate?=?getDateFormat(parttern).parse(date);??????????????}?catch?(Exception?e)?{??????????????}??????????}??????????return?myDate;??????}????????/**??????*?將日期字符串轉化為日期。失敗返回null。??????*?@param?date?日期字符串??????*?@param?dateStyle?日期風格??????*?@return?日期??????*/??????public?static?Date?StringToDate(String?date,?DateStyle?dateStyle)?{??????????Date?myDate?=?null;??????????if?(dateStyle?==?null)?{??????????????List<Long>?timestamps?=?new?ArrayList<Long>();??????????????for?(DateStyle?style?:?DateStyle.values())?{??????????????????Date?dateTmp?=?StringToDate(date,?style.getValue());??????????????????if?(dateTmp?!=?null)?{??????????????????????timestamps.add(dateTmp.getTime());??????????????????}??????????????}??????????????myDate?=?getAccurateDate(timestamps);??????????}?else?{??????????????myDate?=?StringToDate(date,?dateStyle.getValue());??????????}??????????return?myDate;??????}????????/**??????*?將日期轉化為日期字符串。失敗返回null。??????*?@param?date?日期??????*?@param?parttern?日期格式??????*?@return?日期字符串??????*/??????public?static?String?DateToString(Date?date,?String?parttern)?{??????????String?dateString?=?null;??????????if?(date?!=?null)?{??????????????try?{??????????????????dateString?=?getDateFormat(parttern).format(date);??????????????}?catch?(Exception?e)?{??????????????}??????????}??????????return?dateString;??????}????????/**??????*?將日期轉化為日期字符串。失敗返回null。??????*?@param?date?日期??????*?@param?dateStyle?日期風格??????*?@return?日期字符串??????*/??????public?static?String?DateToString(Date?date,?DateStyle?dateStyle)?{??????????String?dateString?=?null;??????????if?(dateStyle?!=?null)?{??????????????dateString?=?DateToString(date,?dateStyle.getValue());??????????}??????????return?dateString;??????}????????/**??????*?將日期字符串轉化為另一日期字符串。失敗返回null。??????*?@param?date?舊日期字符串??????*?@param?parttern?新日期格式??????*?@return?新日期字符串??????*/??????public?static?String?StringToString(String?date,?String?parttern)?{??????????return?StringToString(date,?null,?parttern);??????}????????/**??????*?將日期字符串轉化為另一日期字符串。失敗返回null。??????*?@param?date?舊日期字符串??????*?@param?dateStyle?新日期風格??????*?@return?新日期字符串??????*/??????public?static?String?StringToString(String?date,?DateStyle?dateStyle)?{??????????return?StringToString(date,?null,?dateStyle);??????}????????/**??????*?將日期字符串轉化為另一日期字符串。失敗返回null。??????*?@param?date?舊日期字符串??????*?@param?olddParttern?舊日期格式??????*?@param?newParttern?新日期格式??????*?@return?新日期字符串??????*/??????public?static?String?StringToString(String?date,?String?olddParttern,?String?newParttern)?{??????????String?dateString?=?null;??????????if?(olddParttern?==?null)?{??????????????DateStyle?style?=?getDateStyle(date);??????????????if?(style?!=?null)?{??????????????????Date?myDate?=?StringToDate(date,?style.getValue());??????????????????dateString?=?DateToString(myDate,?newParttern);??????????????}??????????}?else?{??????????????Date?myDate?=?StringToDate(date,?olddParttern);??????????????dateString?=?DateToString(myDate,?newParttern);??????????}??????????return?dateString;??????}????????/**??????*?將日期字符串轉化為另一日期字符串。失敗返回null。??????*?@param?date?舊日期字符串??????*?@param?olddDteStyle?舊日期風格??????*?@param?newDateStyle?新日期風格??????*?@return?新日期字符串??????*/??????public?static?String?StringToString(String?date,?DateStyle?olddDteStyle,?DateStyle?newDateStyle)?{??????????String?dateString?=?null;??????????if?(olddDteStyle?==?null)?{??????????????DateStyle?style?=?getDateStyle(date);??????????????dateString?=?StringToString(date,?style.getValue(),?newDateStyle.getValue());??????????}?else?{??????????????dateString?=?StringToString(date,?olddDteStyle.getValue(),?newDateStyle.getValue());??????????}??????????return?dateString;??????}????????/**??????*?增加日期的年份。失敗返回null。??????*?@param?date?日期??????*?@param?yearAmount?增加數量??蔀樨摂?/span>??????*?@return?增加年份后的日期字符串??????*/??????public?static?String?addYear(String?date,?int?yearAmount)?{??????????return?addInteger(date,?Calendar.YEAR,?yearAmount);??????}????????????/**??????*?增加日期的年份。失敗返回null。??????*?@param?date?日期??????*?@param?yearAmount?增加數量??蔀樨摂?/span>??????*?@return?增加年份后的日期??????*/??????public?static?Date?addYear(Date?date,?int?yearAmount)?{??????????return?addInteger(date,?Calendar.YEAR,?yearAmount);??????}????????????/**??????*?增加日期的月份。失敗返回null。??????*?@param?date?日期??????*?@param?yearAmount?增加數量。可為負數??????*?@return?增加月份后的日期字符串??????*/??????public?static?String?addMonth(String?date,?int?yearAmount)?{??????????return?addInteger(date,?Calendar.MONTH,?yearAmount);??????}????????????/**??????*?增加日期的月份。失敗返回null。??????*?@param?date?日期??????*?@param?yearAmount?增加數量??蔀樨摂?/span>??????*?@return?增加月份后的日期??????*/??????public?static?Date?addMonth(Date?date,?int?yearAmount)?{??????????return?addInteger(date,?Calendar.MONTH,?yearAmount);??????}????????????/**??????*?增加日期的天數。失敗返回null。??????*?@param?date?日期字符串??????*?@param?dayAmount?增加數量??蔀樨摂?/span>??????*?@return?增加天數后的日期字符串??????*/??????public?static?String?addDay(String?date,?int?dayAmount)?{??????????return?addInteger(date,?Calendar.DATE,?dayAmount);??????}????????/**??????*?增加日期的天數。失敗返回null。??????*?@param?date?日期??????*?@param?dayAmount?增加數量??蔀樨摂?/span>??????*?@return?增加天數后的日期??????*/??????public?static?Date?addDay(Date?date,?int?dayAmount)?{??????????return?addInteger(date,?Calendar.DATE,?dayAmount);??????}????????????/**??????*?增加日期的小時。失敗返回null。??????*?@param?date?日期字符串??????*?@param?dayAmount?增加數量。可為負數??????*?@return?增加小時后的日期字符串??????*/??????public?static?String?addHour(String?date,?int?hourAmount)?{??????????return?addInteger(date,?Calendar.HOUR_OF_DAY,?hourAmount);??????}????????/**??????*?增加日期的小時。失敗返回null。??????*?@param?date?日期??????*?@param?dayAmount?增加數量??蔀樨摂?/span>??????*?@return?增加小時后的日期??????*/??????public?static?Date?addHour(Date?date,?int?hourAmount)?{??????????return?addInteger(date,?Calendar.HOUR_OF_DAY,?hourAmount);??????}????????????/**??????*?增加日期的分鐘。失敗返回null。??????*?@param?date?日期字符串??????*?@param?dayAmount?增加數量??蔀樨摂?/span>??????*?@return?增加分鐘后的日期字符串??????*/??????public?static?String?addMinute(String?date,?int?hourAmount)?{??????????return?addInteger(date,?Calendar.MINUTE,?hourAmount);??????}????????/**??????*?增加日期的分鐘。失敗返回null。??????*?@param?date?日期??????*?@param?dayAmount?增加數量??蔀樨摂?/span>??????*?@return?增加分鐘后的日期??????*/??????public?static?Date?addMinute(Date?date,?int?hourAmount)?{??????????return?addInteger(date,?Calendar.MINUTE,?hourAmount);??????}????????????/**??????*?增加日期的秒鐘。失敗返回null。??????*?@param?date?日期字符串??????*?@param?dayAmount?增加數量??蔀樨摂?/span>??????*?@return?增加秒鐘后的日期字符串??????*/??????public?static?String?addSecond(String?date,?int?hourAmount)?{??????????return?addInteger(date,?Calendar.SECOND,?hourAmount);??????}????????/**??????*?增加日期的秒鐘。失敗返回null。??????*?@param?date?日期??????*?@param?dayAmount?增加數量??蔀樨摂?/span>??????*?@return?增加秒鐘后的日期??????*/??????public?static?Date?addSecond(Date?date,?int?hourAmount)?{??????????return?addInteger(date,?Calendar.SECOND,?hourAmount);??????}????????/**??????*?獲取日期的年份。失敗返回0。??????*?@param?date?日期字符串??????*?@return?年份??????*/??????public?static?int?getYear(String?date)?{??????????return?getYear(StringToDate(date));??????}????????/**??????*?獲取日期的年份。失敗返回0。??????*?@param?date?日期??????*?@return?年份??????*/??????public?static?int?getYear(Date?date)?{??????????return?getInteger(date,?Calendar.YEAR);??????}????????/**??????*?獲取日期的月份。失敗返回0。??????*?@param?date?日期字符串??????*?@return?月份??????*/??????public?static?int?getMonth(String?date)?{??????????return?getMonth(StringToDate(date));??????}????????/**??????*?獲取日期的月份。失敗返回0。??????*?@param?date?日期??????*?@return?月份??????*/??????public?static?int?getMonth(Date?date)?{??????????return?getInteger(date,?Calendar.MONTH);??????}????????/**??????*?獲取日期的天數。失敗返回0。??????*?@param?date?日期字符串??????*?@return?天??????*/??????public?static?int?getDay(String?date)?{??????????return?getDay(StringToDate(date));??????}????????/**??????*?獲取日期的天數。失敗返回0。??????*?@param?date?日期??????*?@return?天??????*/??????public?static?int?getDay(Date?date)?{??????????return?getInteger(date,?Calendar.DATE);??????}????????????/**??????*?獲取日期的小時。失敗返回0。??????*?@param?date?日期字符串??????*?@return?小時??????*/??????public?static?int?getHour(String?date)?{??????????return?getHour(StringToDate(date));??????}????????/**??????*?獲取日期的小時。失敗返回0。??????*?@param?date?日期??????*?@return?小時??????*/??????public?static?int?getHour(Date?date)?{??????????return?getInteger(date,?Calendar.HOUR_OF_DAY);??????}????????????/**??????*?獲取日期的分鐘。失敗返回0。??????*?@param?date?日期字符串??????*?@return?分鐘??????*/??????public?static?int?getMinute(String?date)?{??????????return?getMinute(StringToDate(date));??????}????????/**??????*?獲取日期的分鐘。失敗返回0。??????*?@param?date?日期??????*?@return?分鐘??????*/??????public?static?int?getMinute(Date?date)?{??????????return?getInteger(date,?Calendar.MINUTE);??????}????????????/**??????*?獲取日期的秒鐘。失敗返回0。??????*?@param?date?日期字符串??????*?@return?秒鐘??????*/??????public?static?int?getSecond(String?date)?{??????????return?getSecond(StringToDate(date));??????}????????/**??????*?獲取日期的秒鐘。失敗返回0。??????*?@param?date?日期??????*?@return?秒鐘??????*/??????public?static?int?getSecond(Date?date)?{??????????return?getInteger(date,?Calendar.SECOND);??????}????????/**??????*?獲取日期?。默認yyyy-MM-dd格式。失敗返回null。??????*?@param?date?日期字符串??????*?@return?日期??????*/??????public?static?String?getDate(String?date)?{??????????return?StringToString(date,?DateStyle.YYYY_MM_DD);??????}????????/**??????*?獲取日期。默認yyyy-MM-dd格式。失敗返回null。??????*?@param?date?日期??????*?@return?日期??????*/??????public?static?String?getDate(Date?date)?{??????????return?DateToString(date,?DateStyle.YYYY_MM_DD);??????}????????/**??????*?獲取日期的時間。默認HH:mm:ss格式。失敗返回null。??????*?@param?date?日期字符串??????*?@return?時間??????*/??????public?static?String?getTime(String?date)?{??????????return?StringToString(date,?DateStyle.HH_MM_SS);??????}????????/**??????*?獲取日期的時間。默認HH:mm:ss格式。失敗返回null。??????*?@param?date?日期??????*?@return?時間??????*/??????public?static?String?getTime(Date?date)?{??????????return?DateToString(date,?DateStyle.HH_MM_SS);??????}????????/**??????*?獲取日期的星期。失敗返回null。??????*?@param?date?日期字符串??????*?@return?星期??????*/??????public?static?Week?getWeek(String?date)?{??????????Week?week?=?null;??????????DateStyle?dateStyle?=?getDateStyle(date);??????????if?(dateStyle?!=?null)?{??????????????Date?myDate?=?StringToDate(date,?dateStyle);??????????????week?=?getWeek(myDate);??????????}??????????return?week;??????}????????/**??????*?獲取日期的星期。失敗返回null。??????*?@param?date?日期??????*?@return?星期??????*/??????public?static?Week?getWeek(Date?date)?{??????????Week?week?=?null;??????????Calendar?calendar?=?Calendar.getInstance();??????????calendar.setTime(date);??????????int?weekNumber?=?calendar.get(Calendar.DAY_OF_WEEK)?-?1;??????????switch?(weekNumber)?{??????????case?0:??????????????week?=?Week.SUNDAY;??????????????break;??????????case?1:??????????????week?=?Week.MONDAY;??????????????break;??????????case?2:??????????????week?=?Week.TUESDAY;??????????????break;??????????case?3:??????????????week?=?Week.WEDNESDAY;??????????????break;??????????case?4:??????????????week?=?Week.THURSDAY;??????????????break;??????????case?5:??????????????week?=?Week.FRIDAY;??????????????break;??????????case?6:??????????????week?=?Week.SATURDAY;??????????????break;??????????}??????????return?week;??????}????????????/**??????*?獲取兩個日期相差的天數??????*?@param?date?日期字符串??????*?@param?otherDate?另一個日期字符串??????*?@return?相差天數??????*/??????public?static?int?getIntervalDays(String?date,?String?otherDate)?{??????????return?getIntervalDays(StringToDate(date),?StringToDate(otherDate));??????}????????????/**??????*?@param?date?日期??????*?@param?otherDate?另一個日期??????*?@return?相差天數??????*/??????public?static?int?getIntervalDays(Date?date,?Date?otherDate)?{??????????date?=?DateUtil.StringToDate(DateUtil.getDate(date));??????????long?time?=?Math.abs(date.getTime()?-?otherDate.getTime());??????????return?(int)time/(24?*?60?*?60?*?1000);??????}??}??
DateStyle類
[java]?view plain?copy
package?com.util;????public?enum?DateStyle?{????????????MM_DD("MM-dd"),??????YYYY_MM("yyyy-MM"),??????YYYY_MM_DD("yyyy-MM-dd"),??????MM_DD_HH_MM("MM-dd?HH:mm"),??????MM_DD_HH_MM_SS("MM-dd?HH:mm:ss"),??????YYYY_MM_DD_HH_MM("yyyy-MM-dd?HH:mm"),??????YYYY_MM_DD_HH_MM_SS("yyyy-MM-dd?HH:mm:ss"),????????????MM_DD_EN("MM/dd"),??????YYYY_MM_EN("yyyy/MM"),??????YYYY_MM_DD_EN("yyyy/MM/dd"),??????MM_DD_HH_MM_EN("MM/dd?HH:mm"),??????MM_DD_HH_MM_SS_EN("MM/dd?HH:mm:ss"),??????YYYY_MM_DD_HH_MM_EN("yyyy/MM/dd?HH:mm"),??????YYYY_MM_DD_HH_MM_SS_EN("yyyy/MM/dd?HH:mm:ss"),????????????MM_DD_CN("MM月dd日"),??????YYYY_MM_CN("yyyy年MM月"),??????YYYY_MM_DD_CN("yyyy年MM月dd日"),??????MM_DD_HH_MM_CN("MM月dd日?HH:mm"),??????MM_DD_HH_MM_SS_CN("MM月dd日?HH:mm:ss"),??????YYYY_MM_DD_HH_MM_CN("yyyy年MM月dd日?HH:mm"),??????YYYY_MM_DD_HH_MM_SS_CN("yyyy年MM月dd日?HH:mm:ss"),????????????HH_MM("HH:mm"),??????HH_MM_SS("HH:mm:ss");??????????????????private?String?value;????????????DateStyle(String?value)?{??????????this.value?=?value;??????}????????????public?String?getValue()?{??????????return?value;??????}??}??
Week類
[java]?view plain?copy
package?com.util;????public?enum?Week?{????????MONDAY("星期一",?"Monday",?"Mon.",?1),??????TUESDAY("星期二",?"Tuesday",?"Tues.",?2),??????WEDNESDAY("星期三",?"Wednesday",?"Wed.",?3),??????THURSDAY("星期四",?"Thursday",?"Thur.",?4),??????FRIDAY("星期五",?"Friday",?"Fri.",?5),??????SATURDAY("星期六",?"Saturday",?"Sat.",?6),??????SUNDAY("星期日",?"Sunday",?"Sun.",?7);????????????String?name_cn;??????String?name_en;??????String?name_enShort;??????int?number;????????????Week(String?name_cn,?String?name_en,?String?name_enShort,?int?number)?{??????????this.name_cn?=?name_cn;??????????this.name_en?=?name_en;??????????this.name_enShort?=?name_enShort;??????????this.number?=?number;??????}????????????public?String?getChineseName()?{??????????return?name_cn;??????}????????public?String?getName()?{??????????return?name_en;??????}????????public?String?getShortName()?{??????????return?name_enShort;??????}????????public?int?getNumber()?{??????????return?number;??????}??}??
我編寫這個util的目的主要是為了解決StringToDate的麻煩,日期的格式有很多,因此僅通過SimpleDateFormat只能格式化一個日期格式,所以我用DateStyle來匹配主流的日期格式,如果有新的日期格式同樣也可以加,但本人并未把所有日期格式都測試了,所以并不保證不出錯,但我保留了傳遞SimpleDateFormat的parttern的方式,因此可以通過這個來解決。
另外,目前這個日期工具類還有個bug,就是如果日期太大(如2300-05-14)或太小的話,自動匹配日期格式的核心算法(getAccurateDate)還是有問題,目前這個版本支持的范圍,大概是:【加100年——當前時間——減100年】,這個bug筆者日后會考慮改進,另外如果大家對日期工具類有什么更好的方法,歡迎隨時與我溝通交流哦!
?
============友情鏈接============
java日期工具類DateUtil-續二?http://blog.csdn.net/wangpeng047/article/details/8295623
java日期工具類DateUtil-續一?http://blog.csdn.net/wangpeng047/article/details/8270466
?
總結
以上是生活随笔為你收集整理的java日期工具类DateUtil的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。