时间工具类DateUtil

/**

将date类型的数据按照固定的格式转换成字符串

**/

public static String DateToString(Date date, String pattern) {
String strDateTime = null;
SimpleDateFormat formater = new SimpleDateFormat(pattern);
strDateTime = (date == null) ? null : formater.format(date);
return strDateTime;
}

/**

将指定的date往前推几天(day为负数)或者往后推几天

**/

public static Date addDay(Date date, int day) {
Calendar rightNow = Calendar.getInstance();
rightNow.setTime(date);
rightNow.add(6, day);
return rightNow.getTime();
}

/**

将字符串yyyy-MM-dd HH:mm:ss转换成Date类型

**/

public static Date StringToDateTime(String str) {
String _pattern = "yyyy-MM-dd HH:mm:ss";
return StringToDate(str, _pattern);
}

/**

将字符串转换成Date类型

**/

public static Date StringToDate(String str, String pattern) {
Date dateTime = null;
try {
if ((str != null) && (!(str.equals("")))) {
SimpleDateFormat formater = new SimpleDateFormat(pattern);
dateTime = formater.parse(str);
}
} catch (Exception ex) {
logger.info("字符串转date类型报错", ex);
}
return dateTime;
}

/**
* 取得当前系统时间特定时间格式字符串
*
* @param String
* @return String
*/
public static String getCurrentDateTime(String format) {
if (null == format || "".equals(format)) {
format = "yyyyMMddHH:mm:ss";
}
SimpleDateFormat sDateFormat = new SimpleDateFormat(format);
String date = sDateFormat.format(new java.util.Date());
return date;
}

/**
*
* @MethodName: getDatesBetweenTwoDate
* @Description: 根据开始时间和结束时间返回时间段内的时间集合
* @param beginDate
* @param endDate
* @return
* @return: List<Date>
* @author mkWang
* @date 2018年1月16日 上午11:41:29
*/
public static List<Date> getDatesBetweenTwoDate(Date beginDate, Date endDate) {
List<Date> lDate = new ArrayList<Date>();
lDate.add(beginDate);// 把开始时间加入集合
Calendar cal = Calendar.getInstance();
// 使用给定的 Date 设置此 Calendar 的时间
cal.setTime(beginDate);
boolean bContinue = true;
while (bContinue) {
// 根据日历的规则,为给定的日历字段添加或减去指定的时间量
cal.add(Calendar.DAY_OF_MONTH, 1);
// 测试此日期是否在指定日期之后
if (endDate.after(cal.getTime())) {
lDate.add(cal.getTime());
} else {
break;
}
}
lDate.add(endDate);// 把结束时间加入集合
return lDate;
}

/**
* 判断时间格式 格式必须为match
*
* @param sDate
* @return
*/
public static boolean isValidDate(String str, String match) {
DateFormat formatter = new SimpleDateFormat(match);
try {
Date date = (Date) formatter.parse(str);
return str.equals(formatter.format(date));
} catch (Exception e) {
return false;
}
}

原文地址:https://www.cnblogs.com/sailormoon/p/8434459.html