importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.Calendar;importjava.util.Date;/*** 日期工具类 默认使用 "yyyy-MM-dd HH:mm:ss" 格式化日期
**/
public final classDateUtils {/*** 英文简写(默认)如:2010-12-01*/
public static String FORMAT_SHORT = "yyyy-MM-dd";/*** 英文全称 如:2010-12-01 23:15:06*/
public static String FORMAT_LONG = "yyyy-MM-dd HH:mm:ss";/*** 精确到毫秒的完整时间 如:yyyy-MM-dd HH:mm:ss.S*/
public static String FORMAT_FULL = "yyyy-MM-dd HH:mm:ss.S";/*** 中文简写 如:2010年12月01日*/
public static String FORMAT_SHORT_CN = "yyyy年MM月dd";/*** 中文全称 如:2010年12月01日 23时15分06秒*/
public static String FORMAT_LONG_CN = "yyyy年MM月dd日 HH时mm分ss秒";/*** 精确到毫秒的完整中文时间*/
public static String FORMAT_FULL_CN = "yyyy年MM月dd日 HH时mm分ss秒SSS毫秒";/*** 获得默认的 date pattern*/
public staticString getDatePattern() {returnFORMAT_LONG;
}/*** 根据预设格式返回当前日期
*
*@return
*/
public staticString getNow() {return format(newDate());
}/*** 根据用户格式返回当前日期
*
*@paramformat
*@return
*/
public staticString getNow(String format) {return format(newDate(), format);
}/*** 使用预设格式格式化日期
*
*@paramdate
*@return
*/
public staticString format(Date date) {returnformat(date, getDatePattern());
}/*** 使用用户格式格式化日期
*
*@paramdate
* 日期
*@parampattern
* 日期格式
*@return
*/
public staticString format(Date date, String pattern) {
String returnValue= "";if (date != null) {
SimpleDateFormat df= newSimpleDateFormat(pattern);
returnValue=df.format(date);
}return(returnValue);
}/*** 使用预设格式提取字符串日期
*
*@paramstrDate
* 日期字符串
*@return
*/
public staticDate parse(String strDate) {returnparse(strDate, getDatePattern());
}/*** 使用用户格式提取字符串日期
*
*@paramstrDate
* 日期字符串
*@parampattern
* 日期格式
*@return
*/
public staticDate parse(String strDate, String pattern) {
SimpleDateFormat df= newSimpleDateFormat(pattern);try{returndf.parse(strDate);
}catch(ParseException e) {
e.printStackTrace();return null;
}
}/*** 在日期上增加数个整月
*
*@paramdate
* 日期
*@paramn
* 要增加的月数
*@return
*/
public static Date addMonth(Date date, intn) {
Calendar cal=Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.MONTH, n);returncal.getTime();
}/*** 在日期上增加天数
*
*@paramdate
* 日期
*@paramn
* 要增加的天数
*@return
*/
public static Date addDay(Date date, intn) {
Calendar cal=Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.DATE, n);returncal.getTime();
}/*** 获取时间戳*/
public staticString getTimeString() {
SimpleDateFormat df= newSimpleDateFormat(FORMAT_FULL);
Calendar calendar=Calendar.getInstance();returndf.format(calendar.getTime());
}/*** 获取日期年份
*
*@paramdate
* 日期
*@return
*/
public staticString getYear(Date date) {return format(date).substring(0, 4);
}/*** 按默认格式的字符串距离今天的天数
*
*@paramdate
* 日期字符串
*@return
*/
public static intcountDays(String date) {long t =Calendar.getInstance().getTime().getTime();
Calendar c=Calendar.getInstance();
c.setTime(parse(date));long t1 =c.getTime().getTime();return (int) (t / 1000 - t1 / 1000) / 3600 / 24;
}/*** 按用户格式字符串距离今天的天数
*
*@paramdate
* 日期字符串
*@paramformat
* 日期格式
*@return
*/
public static intcountDays(String date, String format) {long t =Calendar.getInstance().getTime().getTime();
Calendar c=Calendar.getInstance();
c.setTime(parse(date, format));long t1 =c.getTime().getTime();return (int) (t / 1000 - t1 / 1000) / 3600 / 24;
}
}