/** * 日期操作助手类 * * */ public final class DateHelper { /** * 按照yyyy-MM-dd格式获取当前日期 * * @return */ public static Date getDate(){ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); try { return dateFormat.parse(dateFormat.format(new Date())); } catch (ParseException e) { e.printStackTrace(); return null; } } /** * 按照yyyy-MM-dd HH:mm:ss的格式获取系统当前时间 * * @param format * @param date */ public static Date getTime(){ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { return dateFormat.parse(dateFormat.format(new Date())); } catch (ParseException e) { e.printStackTrace(); return null; } } /** * 按照指定格式将字符串转换为日期 * * @param format * @param date */ public static Date getDate(String format, String source){ SimpleDateFormat dateFormat = new SimpleDateFormat(format); try { if (StringUtils.isNotEmpty(source)){ return dateFormat.parse(source); } else{ return null; } } catch (ParseException e) { e.printStackTrace(); return null; } } /** * 将yyyy-MM-dd格式的字符串转换为日期类型 * * @param source * @return */ public static Date getDate(String source){ if (source != null){ return getDate("yyyy-MM-dd", source); } else{ return null; } } /** * 将yyyy-MM-dd HH:mm:ss格式的字符串转换为日期类型 * * @param source * @return */ public static Date getTime(String source){ if (source != null){ return getDate("yyyy-MM-dd HH:mm:ss", source); } else{ return null; } } /** * 将日期转换为字符串类型 * * @return */ public static String date2Char(Date date){ try{ if (date != null){ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); return format.format(date); } } catch (Exception e){ e.printStackTrace(); } return null; } /** * 将日期转换为字符串类型的时间 * * @return */ public static String time2Char(Date date){ try{ if (date != null){ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return format.format(date); } } catch (Exception e){ e.printStackTrace(); } return null; } /** * 获取两个日期相差的天数 * * @param date1 起始日期 * @param date2 截止日期 * @return */ public static Integer getDays(Date start, Date end){ try{ if (start == null || end == null){ return null; } SimpleDateFormat f1 = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat f2 = new SimpleDateFormat("yyyy-MM-dd"); Date d1 = f1.parse(f1.format(start)); Date d2 = f2.parse(f2.format(end)); int days = (int)((d2.getTime() - d1.getTime()) / (60000 * 60 * 24)); return days; } catch (Exception e){ e.printStackTrace(); throw new RuntimeException("get days is error"); } } /** * 按照指定的格式返回当前日期的字符串表是形式 * * @param format * @return */ public static String getDateForChar(String format){ try{ SimpleDateFormat dateFormat = new SimpleDateFormat(format); return dateFormat.format(new Date()); } catch (Exception e){ e.printStackTrace(); return null; } } /** * 按照yyyy-MM-dd格式返回当前日期的字符串表示形式 * * @return */ public static String getDateForChar(){ return getDateForChar("yyyy-MM-dd"); } /** * 按照yyyy-MM-dd HH:mm:ss格式返回当前时间的字符串表示形式 * * @return */ public static String getTimeForChar(){ return getDateForChar("yyyy-MM-dd HH:mm:ss"); } /** * 为原日期添加指定的天数并返回添加后的日期,如果天数为负数则在原日期的基础上减去指定的天数 * * @param source * @param days * @return */ public static Date addDays(Date source, int days){ try{ SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd"); format.parse(format.format(source)); Calendar calendar = format.getCalendar(); calendar.add(Calendar.DAY_OF_YEAR, days); return calendar.getTime(); } catch (Exception e){ throw new RuntimeException("add days is error."); } } /** * 取得当前日期的星期数 * * @return */ public static String getWeek(){ Calendar calendar = Calendar.getInstance(); int week = calendar.get(Calendar.DAY_OF_WEEK); switch (week) { case Calendar.MONDAY: return "星期一"; case Calendar.TUESDAY: return "星期二"; case Calendar.WEDNESDAY: return "星期三"; case Calendar.THURSDAY: return "星期四"; case Calendar.FRIDAY: return "星期五"; case Calendar.SATURDAY: return "星期六"; case Calendar.SUNDAY: return "星期日"; default: return null; } } /** * 取得当前日期的年 * * @return */ public static String getYear(){ Calendar calendar = Calendar.getInstance(); int year = calendar.get(Calendar.YEAR); return String.valueOf(year); } /** * 取得当前日期的月 * * @return */ public static String getMonth(){ Calendar calendar = Calendar.getInstance(); int moth = calendar.get(Calendar.MONTH); return String.valueOf(moth); } /** * 取得当前日期的月添加指定的天数并返回添加后的月,如果天数为负数则在原日期的基础上减去指定的天数 * @param days * @return */ public static String getAddDaysMonth(int days){ Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DAY_OF_YEAR, days); int moth = calendar.get(Calendar.MONTH); return String.valueOf(moth); } /** * 取得当前日期的月添加指定的天数并返回添加后的年,如果天数为负数则在原日期的基础上减去指定的天数 * @param days * @return */ public static String getAddDaysYear(int days){ Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DAY_OF_YEAR, days); int moth = calendar.get(Calendar.YEAR); return String.valueOf(moth); } public static void main(String[] args){ System.out.println(getYear()); System.out.println(getMonth()); System.out.println(getAddDaysMonth(-30)); } }