public final static String DATE_FORMAT = "yyyy-MM-dd";
/**
* 使用用户格式格式化日期
*
* @param date 日期
* @param pattern 日期格式
* @return
*/
public static String format(Date date, String pattern) {
String returnValue = "";
if (date != null) {
SimpleDateFormat df = new SimpleDateFormat(pattern);
returnValue = df.format(date);
}
return (returnValue);
}
/**
* 根据用户格式返回当前日期
*
* @param format
* @return
*/
public static String getNow(String format) {
return format(new Date(), format);
}
/**
* 获取当前日期n天前的日期:n为整数
* 获取当前日期n天后的日期:n为负数
*
* @param n
* @return
*/
public static String getDateDifference(int n) {
SimpleDateFormat format = new SimpleDateFormat(DATE_FORMAT);
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) - n);
return format.format(calendar.getTime());
}
/**
* 获取当前年份
*
* @param date
* @return
*/
public static int getTheYear(Date date){
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(Calendar.YEAR);
}
/**
* 获取前n个月的第一天
*
* @param n
* @return
*/
public static String getBeforeMonthStartdate(int n) {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH, -n);
calendar.set(Calendar.DAY_OF_MONTH, 1);
SimpleDateFormat format = new SimpleDateFormat(DATE_FORMAT);
return format.format(calendar.getTime());
}
/**
* 获取前n个月的最后一天
*
* @param n
* @return
*/
public static String getBeforeMonthEnddate(int n) {
Calendar calendar = Calendar.getInstance();
int month = calendar.get(Calendar.MONTH);
calendar.set(Calendar.MONTH, month - n);
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
SimpleDateFormat format = new SimpleDateFormat(DATE_FORMAT);
return format.format(calendar.getTime());
}
/**
* 根据起始日期获取日期列表
*
* @param dStart
* @param dEnd
* @return
*/
public static List<String> getDates(Date dStart, Date dEnd) {
List<String> dateList = new ArrayList<>();
SimpleDateFormat format = new SimpleDateFormat(DATE_FORMAT);
Calendar calBegin = Calendar.getInstance();
calBegin.setTime(dStart);
dateList.add(format.format(calBegin.getTime()));
Calendar calEnd = Calendar.getInstance();
calEnd.setTime(dEnd);
while (dEnd.after(calBegin.getTime())) {
calBegin.add(Calendar.DAY_OF_MONTH, 1);
dateList.add(format.format(calBegin.getTime()));
}
return dateList;
}