日期工具类
日期工具类
public class DateUtils extends org.apache.commons.lang.time.DateUtils{ public static final SimpleDateFormat sdfShort = new SimpleDateFormat("yyyyMMdd"); public static final SimpleDateFormat sdfLongTimeFormat = new SimpleDateFormat("yyyy-MM-dd-HH"); public static final SimpleDateFormat sdfLong = new SimpleDateFormat("yyyy-MM-dd"); public static final SimpleDateFormat sdfLongTime = new SimpleDateFormat("yyyyMMddHHmmss"); public static final SimpleDateFormat sdfLongTimePlus = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); public static final SimpleDateFormat sdfLongTimePlusMill = new SimpleDateFormat("yyyyMMddHHmmssSSSS"); public static final SimpleDateFormat sdfLongTime_min = new SimpleDateFormat("yyyy-MM-dd HH:mm"); public static final SimpleDateFormat sdfLongTime_cn_min = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分"); public static final SimpleDateFormat sdfLong_y_m = new SimpleDateFormat("yyyy年MM月"); public static final SimpleDateFormat YEAR = new SimpleDateFormat("yyyy"); public static final SimpleDateFormat MM = new SimpleDateFormat("MM"); public static final SimpleDateFormat dd = new SimpleDateFormat("dd"); /** * 获取当前日期为日期型 * * @return 当前日期,java.util.Date类型 */ public static Date getCurrentDate() { return new Date(); } /** * @param str 待解析字符串 * @param sdf 格式定义 * @return Date类,解析错误返回空 * @see java.text.SimpleDateFormat#parse(String) */ public static Date parse(String str, SimpleDateFormat sdf) throws ParseException { return sdf.parse(str); } /** * @param date date * @param sdf 格式化工具类 * @return */ public static String format(Date date, SimpleDateFormat sdf) { return sdf.format(date); } /** * 支持null判断,如果两个都为空,返回true.(处理逻辑类似StringUtils) * 支持Date,TimeStamp,以及二者混合比较 * * @param date1 * @param date2 * @return */ public static final boolean equals(Date date1, Date date2) { if (date1 == null && date2 == null) { return false; } else if (date1 != null && date2 != null && !(date1.getTime() == date2.getTime())) { return false; } return true; } /** * 得到日期中的月份 * * @param date 日期 * @return yyyy格式的年份 */ public static String convertDateToMonth(Date date) { return MM.format(date); } /** * 得到日期中的日 * * @param date 日期 * @return yyyy格式的年份 */ public static String convertDateToDay(Date date) { return dd.format(date); } /** * 得到将date增加指定月数后的date * * @param date 日期 * @param intBetween 增加的月份 * @return date 加上intBetween月数后的日期 * @see org.apache.commons.lang.time.DateUtils#addMonths(java.util.Date, int) */ @Deprecated public static Date increaseMonth(Date date, int intBetween) {//Calendar calo = Calendar.getInstance();//calo.setTime(date);//calo.add(Calendar.MONTH, intBetween);//return calo.getTime(); return addMonths(date, intBetween); } /** * 得到将date增加指定天数后的date * * @param date 日期 * @param intBetween 增加的天数 * @return date 加上intBetween天数后的日期 * @see org.apache.commons.lang.time.DateUtils#addDays(java.util.Date, int) */ @Deprecated public static Date increaseDay(Date date, int intBetween) {//Calendar calo = Calendar.getInstance();//calo.setTime(date);//calo.add(Calendar.DATE, intBetween);//return calo.getTime(); return addDays(date, intBetween); } /** * 得到将date增加指定分钟后的date * * @param date 日期 * @param intBetween 增加的分钟 * @return date 加上intBetween分钟后的日期 * @see org.apache.commons.lang.time.DateUtils#addMinutes(java.util.Date, int) */ @Deprecated public static Date increaseMinute(Date date, int intBetween) {//Calendar calo = Calendar.getInstance();//calo.setTime(date);//calo.add(Calendar.MINUTE, intBetween);//return calo.getTime(); return addMinutes(date, intBetween); } /** * 得到将date增加指定年数后的date * * @param date 日期 * @param intBetween 增加的年数 * @return date加上intBetween年数后的日期 * @see org.apache.commons.lang.time.DateUtils#addYears(java.util.Date, int) */ @Deprecated public static Date increaseYear(Date date, int intBetween) {//Calendar calo = Calendar.getInstance();//calo.setTime(date);//calo.add(Calendar.YEAR, intBetween);//return calo.getTime(); return addYears(date, intBetween); } /** * 得到两个日期之间相差的天数 * * @param newDate 大的日期 * @param oldDate 小的日期 * @return newDate-oldDate相差的天数 */ public static int daysBetweenDates(Date newDate, Date oldDate) { int days = 0; Calendar calo = Calendar.getInstance(); Calendar caln = Calendar.getInstance(); calo.setTime(oldDate); caln.setTime(newDate); int oday = calo.get(Calendar.DAY_OF_YEAR); int nyear = caln.get(Calendar.YEAR); int oyear = calo.get(Calendar.YEAR); while (nyear > oyear) { calo.set(Calendar.MONTH, 11); calo.set(Calendar.DATE, 31); days = days + calo.get(Calendar.DAY_OF_YEAR); oyear = oyear + 1; calo.set(Calendar.YEAR, oyear); } int nday = caln.get(Calendar.DAY_OF_YEAR); days = days + nday - oday; return days; } /** * 得到将date增加指定月数后的date * * @param date 日期 * @param intBetween 增加的月份 * @return date 加上intBetween月数后的日期 * @see org.apache.commons.lang.time.DateUtils#addHours(java.util.Date, int) */ @Deprecated public static Date increaseHours(Date date, int intBetween) {//Calendar calo = Calendar.getInstance();//calo.setTime(date);//calo.add(Calendar.HOUR, intBetween);//return calo.getTime(); return addHours(date, intBetween); } /** * 得到date的月份天数 * @desc * @param date * @return */ public static int getMonthDays(Date date){Calendar time=Calendar.getInstance();time.clear();time.setTime( date );int day=time.getActualMaximum(Calendar.DAY_OF_MONTH);// 本月份的天数return day;}}