一、DateUtils常用方法
1.1.常用的日期判斷
isSameDay(final Date date1, final Date date2)
:判斷兩個時間是否是同一天;isSameInstant(final Date date1, final Date date2)
:判斷兩個時間是否為同一毫秒
常用的時間判斷示例代碼
DateUtils.isSameDay(new Date(),new Date()); DateUtils.isSameInstant(new Date(), new Date());
1.2.日期的基本操作
String轉Date
parseDate(final String str, final Locale locale, final String... parsePatterns) throws ParseException
DateUtils.parseDate("20181223 12:34:23", Locale.TRADITIONAL_CHINESE,"yyyy-MM-dd HH:mm:ss");
Date轉String
可以使用DateFormatUtils.format()
方法
DateFormatUtils.format(new Date(),"yyyy-MM-dd HH:mm:ss");
日期加減
addYears(final Date date, final int amount)
,對日期進行加減年分操作,amount
為正數表示加,負數表示減。同理,還有addMonths
加減月份,addDays
加減日,addWeeks
加減周,addHours
加減小時,addMinutes
加減分鍾等方法,具體使用可以參看源碼。
Date date = DateUtils.addYears(new Date(), 3);
日期設置
setYears(final Date date, final int amount)
,給指定的日期設置指定的年份,同理,setMonths
設置月份,setDays
設置日,setHours
設置小時等等方法。
Date date1 = DateUtils.setYears(new Date(), 2018);
日期四舍五入
round(final Date date, final int field)
,將指定的日期中指定的部分四舍五入,四舍五入的 常量有Calendar.YEAR
和Calendar.MONTH
、Calendar.HOUR_OF_DAY
、Calendar.DAY_OF_MONTH
、Calendar.HOUR
、Calendar.MINUTE
等;
/*當前時間:2018-11-25 00:50:57,結果為:2019-01-01 00:00:00*/ Date round = DateUtils.round(new Date(), Calendar.YEAR);
日期截取
truncate(final Date date, final int field)
和round
差距在於不會四舍五入,截取的常量字段有Calendar.YEAR
和Calendar.MONTH
、Calendar.HOUR_OF_DAY
、Calendar.DAY_OF_MONTH
、Calendar.HOUR
、Calendar.MINUTE
等。
/*當前時間:2018-11-25 00:58:03 ,結果為:2018-01-01 00:00:00*/ Date truncate = DateUtils.truncate(new Date(), Calendar.YEAR);
獲取指定時間的天數
getFragmentInDays(final Date date, final int fragment)
獲取指定時間的天數,fragment
可以是Calendar.YEAR
獲取年已經過了多少天,同理,Calendar.MONTH
月份過去了多少天,當然還有getFragmentInSeconds
過去多少秒,getFragmentInMinutes
過去多少分鍾,getFragmentInHours
過去多少小時等。
/*當前時間:2018-11-25 00:58:03 ,結果為:329*/ long fragmentInDays = DateUtils.getFragmentInDays(new Date(), Calendar.YEAR);
比較日歷字段是否相等
truncatedEquals(final Date date1, final Date date2, final int field)
可以比較年,月,日等日歷字段。
boolean b = DateUtils.truncatedEquals(new Date(), new Date(), Calendar.YEAR);