public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
public static final String TIME_FORMAT = "HH:mm:ss";
public static final String DATE_FORMAT = "yyyy-MM-dd";
public static final String DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
public static Date getTodayDate() {
return toDayStart(getCalendar(null)).getTime();
}
public static Calendar toDayStart(Calendar cal) {
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
return cal;
}
public static Calendar getCalendar(Date date) {
Calendar cal = Calendar.getInstance();
if (date != null)
cal.setTime(date);
return cal;
}
public static Date parseDate(String date) {
try {
String[] parsePatterns = {DATE_TIME_FORMAT, DATE_FORMAT};
return parseDate(date, parsePatterns);
} catch (ParseException e) {
System.out.println("转化日期错误");
}
return null;
}
public static Date getFirstDay() {
Calendar c = Calendar.getInstance();
c.add(Calendar.MONTH, 0);
c.set(Calendar.DAY_OF_MONTH, 1);
Date date = toDayStart(c.getTime());
return date;
}
public static Date toDayStart(Date date) {
return toDayStart(getCalendar(date)).getTime();
}
public static Date getFirstDayOfMonth(Date srcDate) {
Calendar cal = Calendar.getInstance();
cal.setTime(srcDate);
cal.set(Calendar.DATE, 1);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
return cal.getTime();
}
public static Date getLastDayOfMonth(Date srcDate) {
Calendar cal = Calendar.getInstance();
cal.setTime(srcDate);
cal.set(Calendar.DATE, cal.getActualMaximum(Calendar.DATE));
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
return cal.getTime();
}
public static Date getMaxLastDayOfMonth(Date srcDate) {
Calendar cal = Calendar.getInstance();
cal.setTime(srcDate);
cal.set(Calendar.DATE, cal.getActualMaximum(Calendar.DATE));
cal.set(Calendar.HOUR_OF_DAY, 23);
cal.set(Calendar.MINUTE, 59);
cal.set(Calendar.SECOND, 59);
cal.set(Calendar.MILLISECOND, 999);
return cal.getTime();
}
public static int getMonthBetweenTwoDay(Date d1, Date d2) {
Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
c1.setTime(d1);
c2.setTime(d2);
if (c1.getTimeInMillis() < c2.getTimeInMillis())
return 0;
int year1 = c1.get(Calendar.YEAR);
int year2 = c2.get(Calendar.YEAR);
int month1 = c1.get(Calendar.MONTH);
int month2 = c2.get(Calendar.MONTH);
int day1 = c1.get(Calendar.DAY_OF_MONTH);
int day2 = c2.get(Calendar.DAY_OF_MONTH);
int yearInterval = year1 - year2;
if (month1 < month2 || month1 == month2 && day1 < day2)
yearInterval--;
int monthInterval = (month1 + 12) - month2;
if (day1 < day2)
monthInterval--;
monthInterval %= 12;
return yearInterval * 12 + monthInterval;
}
public static Boolean isWeekendDate(Date date) {
Calendar cal = Calendar.getInstance();
Assert.notNull(date, "日期不能为空!");
cal.setTime(date);
if (cal.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY || cal.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {
return true;
} else {
return false;
}
}
public static Boolean intersectionDate(Date begin1,Date end1,Date begin2,Date end2){
if(begin1==null || end1==null || begin2==null || end2==null){
throw new RuntimeException("入参不能为空");
}
return (begin1.before(end2) || begin1.equals(end2))&& (end1.after(begin2) || end1.equals(begin2));
}
}