整理日常开发常用日期处理工具方法
package com. flyorange. util ;
import java. text. SimpleDateFormat ;
import java. util. ArrayList ;
import java. util. Calendar ;
import java. util. Date ;
import java. util. List ;
public final class DateUtils {
public static final String NORMAL_DATE_TIME = "yyyy-MM-dd HH:mm:ss" ;
public static final String ONLY_DATE_FORMAT = "yyyy-MM-dd" ;
public static final String ONLY_TIME_FORMAT = "HH:mm:ss" ;
public static final String SHORT_DATE_TIME = "yyyyMMdd HH:mm:ss" ;
public static final String ONLY_SHORT_DATE = "yyyyMMdd" ;
public static final String BEGIN_TIME = " 00:00:00" ;
public static final String END_TIME = " 23:59:59" ;
public DateUtils ( ) {
}
public static String dateToString ( Date date, String dateFormat) {
SimpleDateFormat dateFormat2 = new SimpleDateFormat ( dateFormat) ;
if ( date != null ) {
return dateFormat2. format ( date) ;
} else {
return null ;
}
}
public static Date toDateTime ( String strDate, String dateFormat) {
SimpleDateFormat sdf = new SimpleDateFormat ( dateFormat) ;
try {
return sdf. parse ( strDate) ;
} catch ( Exception e) {
throw new RuntimeException ( e) ;
}
}
public static String getToday ( String dateFormat) {
SimpleDateFormat sdf = new SimpleDateFormat ( dateFormat) ;
return sdf. format ( new Date ( ) ) ;
}
public static String getBeforeDayShort ( int days, String dateFormat) {
SimpleDateFormat sdf = new SimpleDateFormat ( dateFormat) ;
Calendar c = Calendar . getInstance ( ) ;
c. add ( Calendar . DATE, days) ;
return sdf. format ( c. getTime ( ) ) ;
}
public static String getDateStart ( Date date) {
return dateToString ( date, ONLY_DATE_FORMAT) + BEGIN_TIME;
}
public static String getDateEnd ( Date date) {
return dateToString ( date, ONLY_DATE_FORMAT) + END_TIME;
}
public static Date addTime ( Date date, String target, int offset) {
Calendar c = Calendar . getInstance ( ) ;
c. setTime ( date) ;
switch ( target) {
case "YEAR" :
c. add ( Calendar . YEAR, offset) ;
break ;
case "MONTH" :
c. add ( Calendar . MONTH, offset) ;
break ;
case "DAY" :
c. add ( Calendar . DAY_OF_MONTH, offset) ;
break ;
case "HOUR" :
c. add ( Calendar . HOUR, offset) ;
break ;
case "MINUTE" :
c. add ( Calendar . MINUTE, offset) ;
break ;
case "SECOND" :
c. add ( Calendar . SECOND, offset) ;
break ;
default :
break ;
}
return c. getTime ( ) ;
}
public static Date curMonthFirstDate ( ) {
Calendar calendar = Calendar . getInstance ( ) ;
calendar. set ( Calendar . DATE, calendar. getActualMinimum ( Calendar . DAY_OF_MONTH) ) ;
calendar. set ( Calendar . HOUR_OF_DAY, 00 ) ;
calendar. set ( Calendar . MINUTE, 00 ) ;
calendar. set ( Calendar . SECOND, 00 ) ;
return calendar. getTime ( ) ;
}
public static Date curMonthEndDate ( ) {
Calendar calendar = Calendar . getInstance ( ) ;
calendar. set ( Calendar . DATE, calendar. getActualMaximum ( Calendar . DAY_OF_MONTH) ) ;
calendar. set ( Calendar . HOUR_OF_DAY, 23 ) ;
calendar. set ( Calendar . MINUTE, 59 ) ;
calendar. set ( Calendar . SECOND, 59 ) ;
return calendar. getTime ( ) ;
}
public static List < String > getListBetweenDates ( Date beginDate, Date endDate, String dateFormat) {
List < String > date = new ArrayList < String > ( ) ;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat ( dateFormat) ;
date. add ( simpleDateFormat. format ( beginDate) ) ;
Calendar beginTime = Calendar . getInstance ( ) ;
beginTime. setTime ( beginDate) ;
while ( endDate. after ( beginTime. getTime ( ) ) ) {
beginTime. add ( Calendar . DAY_OF_MONTH, 1 ) ;
date. add ( simpleDateFormat. format ( beginTime. getTime ( ) ) ) ;
}
return date;
}
}