如下代码
public static final String YCHAR_01 = "MM-dd" ;
public static final String YCHAR_02 = "HH:mm" ;
public static final String YCHAR_03 = "HH:mm:ss" ;
public static final String YCHAR_04 = "yyyy-MM-dd" ;
public static final String YCHAR_05 = "yyyy/MM/dd" ;
public static final String YCHAR_06 = "yyyy-MM-dd HH:mm:ss" ;
public static final String YCHAR_07 = "yyyy-MM-dd'T'HH:mm:ss" ;
public static final String YCHAR_08 = "yyyy-MM-dd HH:mm:ss:SSS" ;
public static final String YCHAR_09 = "yyyy-MM" ;
public static final String YCHAR_10 = "yyyy" ;
public static final String YCHAR_11 = "yyyy-MM-dd HH:mm" ;
public static final String NCHAR_01 = "MMdd" ;
public static final String NCHAR_02 = "HHmm" ;
public static final String NCHAR_03 = "HHmmss" ;
public static final String NCHAR_04 = "yyyyMMdd" ;
public static final String NCHAR_05 = "yyyyMMddHHmmss" ;
public static final String NCHAR_06 = "yyyyMMdd'T'HHmmss" ;
public static final String NCHAR_07 = "yyyyMMddHHmmssSSS" ;
private static final Object lockObj = new Object ( ) ;
private static Map< String, ThreadLocal< SimpleDateFormat>> sdfMap = new HashMap < String, ThreadLocal< SimpleDateFormat>> ( ) ;
private static SimpleDateFormat getDateFormat ( final String pattern) {
ThreadLocal< SimpleDateFormat> tl = sdfMap. get ( pattern) ;
if ( tl == null ) {
synchronized ( lockObj) {
tl = sdfMap. get ( pattern) ;
if ( tl == null ) {
tl = new ThreadLocal < SimpleDateFormat> ( ) {
@Override
protected SimpleDateFormat initialValue ( ) {
return new SimpleDateFormat ( pattern) ;
}
} ;
sdfMap. put ( pattern, tl) ;
}
}
}
return tl. get ( ) ;
}
date类型转String类型
public static String format ( Date date, String dateFormat) {
return getDateFormat ( dateFormat) . format ( date) ;
}
String类型转date类型
public static Date parse ( String dateStr, String dateFormat) {
try {
return getDateFormat ( dateFormat) . parse ( dateStr) ;
} catch ( Exception e) {
}
return null ;
}
日期字符串转成其他格式
public static String strFormat ( String dateStr, String beforeFormat, String afterFormat) {
try {
Date date = parse ( dateStr, beforeFormat) ;
return format ( date, afterFormat) ;
} catch ( Exception e) {
}
return null ;
}
获取一定天数前或后的时间
public static String getDateByDays ( Integer days, String dateFormat) {
Calendar calendar = Calendar. getInstance ( ) ;
calendar. add ( Calendar. DAY_OF_YEAR , days) ;
return format ( calendar. getTime ( ) , dateFormat) ;
}
获取一定天数前或后的时间 格式:yyyy-MM-dd
public static String getDateByDays ( Integer days) {
return getDateByDays ( days, YCHAR_04 ) ;
}
获取一定天数后的星期
public static String getWeeks ( Integer days) {
String[ ] weeks = { "星期日" , "星期一" , "星期二" , "星期三" , "星期四" , "星期五" , "星期六" } ;
Calendar cal = Calendar. getInstance ( ) ;
cal. setTime ( parse ( getDateByDays ( days) , YCHAR_04 ) ) ;
int week_index = cal. get ( Calendar. DAY_OF_WEEK ) - 1 ;
if ( week_index < 0 ) {
week_index = 0 ;
}
return weeks[ week_index] ;
}