输助类支持功能:
1.字符串与日期之间的相互转化
2.时间戳与日期的转化
3.日期添加月、天、日、小时、秒等功能
4.日期当前月有多少天
5.日期当前周第一天与最后一天
6.日期当前月第一天与最后一天
7.其它功能
package com.demo.test.utils; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class DateUtil { //时间格式化定义 public static final String DATE_FMT="yyyy-MM-dd"; public static final String DATE_HM_FMT="yyyy-MM-dd HH:mm"; public static final String DATE_TIME_FMT="yyyy-MM-dd HH:mm:ss"; public static final String DATE_NO_SPACE_FMT="yyyyMMdd"; public static final String DATE_TIME_NO_SPACE_FMT="yyyyMMddHHmmss"; /** * 得到当前日期/时间字符串 * * @return 返回日期/时间字符串 */ public static String getNowDateTimeString(String type) { Date date = new Date(); SimpleDateFormat formattxt = new SimpleDateFormat(type); return formattxt.format(date); } public static String getTimeStringByDate(Date d, String type) { SimpleDateFormat formattxt = new SimpleDateFormat(type); return formattxt.format(d); } /** * 日期转化为字符串 * @param date 日期 * @param type 日期格式 * @return */ public static String getDateTimeString(Date date,String type) { SimpleDateFormat formattxt = new SimpleDateFormat(type); return formattxt.format(date); } /** * 字符串转化为日期 * @param dateStr 时间字符串 * @param fmt 日期格式 * @return */ public static Date parse(String dateStr, String fmt) { SimpleDateFormat sdf = new SimpleDateFormat(fmt); try { if (dateStr != null) { return sdf.parse(dateStr); } } catch (ParseException e) { } return new Date(); } public static int getTodatRemainingTime() { String nowStr = getNowDateTimeString(DATE_TIME_FMT); String endStr = nowStr.substring(0, 10) + " 23:59:59"; return DateUtil.getTimeDelta(nowStr, endStr); } /** * 两个时间相差秒数 * @param dateStr1 * @param dateStr2 * @return */ public static int getTimeDelta(String dateStr1, String dateStr2) { Date date1 = parse(dateStr1,DATE_TIME_FMT); Date date2 = parse(dateStr2,DATE_TIME_FMT); long timeDelta = (date1.getTime() - date2.getTime()) / 1000;// 单位是秒 int secondsDelta = timeDelta > 0 ? (int) timeDelta : (int) Math.abs(timeDelta); return secondsDelta; } /** * 日期加月 * @param date 时间 * @param index 添加几个月 * @return */ public static Date addMonth(Date date, int index) { Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.MONTH, index); return cal.getTime(); } /** * 日期加天 * @param date 时间 * @param index 添加天数 * @return */ public static Date addDate(Date date, int index) { Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.DATE, index); return cal.getTime(); } /** * 日期加秒 * @param date 时间 * @param index 添加秒数 * @return */ public static Date addSecond(Date date, int index) { Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.SECOND, index); return cal.getTime(); } /** * 日期加小时 * @param date 时间 * @param index 添加小时 * @return */ public static Date addHour(Date date, int hour) { Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.HOUR_OF_DAY, hour); return cal.getTime(); } /* * (时间戳为秒)将unix时间戳转化为正常显示时间 */ public static String timeStamp2Date(String timestampString,String type){ Long timestamp = Long.parseLong(timestampString)*1000; String date = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new java.util.Date(timestamp)); return date; } /* * (时间戳为毫秒)将时间戳转换为时间 */ public static String stampToDate(String s,String type){ String res; SimpleDateFormat simpleDateFormat = new SimpleDateFormat(type); long lt = new Long(s); Date date = new Date(lt); res = simpleDateFormat.format(date); return res; } /*** * 每周的第一天 * @param date 时间 * @param type 格式化类型 * @return */ public static Date getFirstOfWeekDay(Date date) { Calendar cal = Calendar.getInstance(); cal.setTime(date); int d = 0; if (cal.get(Calendar.DAY_OF_WEEK) == 1) { d = -6; } else { d = 2 - cal.get(Calendar.DAY_OF_WEEK); } cal.add(Calendar.DAY_OF_WEEK, d); // 所在周开始日期 // String data1 = new SimpleDateFormat(type).format(cal.getTime()); //return data1; return cal.getTime(); } /*** * 每周的最后一天 * @param date 时间 * @param type 格式化类型 * @return */ public static Date getLastOfWeekDay(Date date) { Calendar cal = Calendar.getInstance(); cal.setTime(date); int d = 0; if (cal.get(Calendar.DAY_OF_WEEK) == 1) { d = -6; } else { d = 2 - cal.get(Calendar.DAY_OF_WEEK); } cal.add(Calendar.DAY_OF_WEEK, d+6); // 所在周结束日期 // String data1 = new SimpleDateFormat(type).format(cal.getTime()); // return data1; return cal.getTime(); } /** * 获取当前日期月的最大天数 * @param date * @return */ public static int getDaysOfMonth(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.getActualMaximum(Calendar.DAY_OF_MONTH); } /** * 获取当前日期月第一天 * @param date * @return */ public static Date getDateMonthFirstDay(Date date){ //获取实例 Calendar calendarInstance = Calendar.getInstance(); //设置时间 calendarInstance.setTime(date); //获取某月最小天数 int firstDay = calendarInstance.getActualMinimum(Calendar.DAY_OF_MONTH); //设置日历中月份的最小天数 calendarInstance.set(Calendar.DAY_OF_MONTH, firstDay); return calendarInstance.getTime(); } /** * 获取当前日期月最后一天 * @param date * @return */ public static Date getDateMaxMonthDay(Date date){ //获取实例 Calendar calendarInstance = Calendar.getInstance(); //设置时间 calendarInstance.setTime(date); //获取某月最大天数 int lastDay = calendarInstance.getActualMaximum(Calendar.DAY_OF_MONTH); //设置日历中月份的最大天数 calendarInstance.set(Calendar.DAY_OF_MONTH, lastDay); return calendarInstance.getTime(); } }