import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* 日期工具
* @author 简陌刀丶阿吉
*
*/
public class DateUtil {
/**
* 字符串转Date类型
* @param dateStr 日期字符串
* @param pattern 日期正则
* @return 根据正则和日期的类型,返回Date类型
*
* Demo:
* Date returnDate = DateUtil.parseDate("20230201", "yyyyMMdd");
*
*/
public static Date parseDate(String dateStr, String pattern) {
SimpleDateFormat dateFormat = new SimpleDateFormat(pattern);
Date date;
try {
date = dateFormat.parse(dateStr);
} catch (ParseException e) {
throw new RuntimeException("日期转换错误");
}
return date;
}
/**
* Date类型转字符串
* @param date Date类型
* @param pattern 日期正则
* @return 根据正则和日期的类型,返回字符串类型
*
* Demo:
* String returnStringDate = DateUtil.dateFormate(new Date(), "yyyMMdd");
*/
public static String dateFormate(Date date, String pattern) {
if(date == null) {
return "";
}
SimpleDateFormat dateFormat = new SimpleDateFormat(pattern);
String dateStr = dateFormat.format(date);
return dateStr;
}
/**
* 将传入的日期加上设置的天数
* @param date 被设置的日期
* @param days 加上或者减去的天数
* @return 返回计算后的日期,跨月计算也可以。
*
* Demo:
* Date returnDate = DateUtil.increaseDays(new Date(), 30);
*/
public static Date increaseDays(Date date, int days) {
if(date == null) {
return null;
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DAY_OF_MONTH, days);
return calendar.getTime();
}
/**
* 判断是否是周六或周日
* @param date 需要判断的日期
* @return true: 是周末; false:不是周末
*
* Demo:
* Boolean returnFlag = DateUtil.isSaturdayOrSunday(new Date());
*
*/
public static boolean isSaturdayOrSunday(Date date) {
if (date == null) {
return false;
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
if(calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY || calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY) {
return true;
}
return false;
}
}
网友评论