/*** 把日期对象根据生成指定格式的字符串
*@paramdate
*@paramformat
*@return
*/
public staticString formatDate(Date date,String format){
String result="";
SimpleDateFormat sdf=newSimpleDateFormat(format);if(date!=null){
result=sdf.format(date);
}returnresult;
}/*** 把日期字符串生成指定格式的日期对象
*@paramstr
*@paramformat
*@return*@throwsException*/
public static Date formatString(String str,String format) throwsException{if(StringUtil.isEmpty(str)){return null;
}
SimpleDateFormat sdf=newSimpleDateFormat(format);returnsdf.parse(str);
}/*** 生成当前年月日字符串
*@return*@throwsException*/
public static String getCurrentDateStr()throwsException{
Date date=newDate();
SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");returnsdf.format(date);
}/*** 获取指定范围内的日期集合
*@parambefore
*@paramend
*@return*@throwsException*/
public static List getRangeDates(String before,String end)throwsException{
List datas=new ArrayList();
Calendar cb=Calendar.getInstance();
Calendar ce=Calendar.getInstance();
cb.setTime(formatString(before,"yyyy-MM-dd"));
ce.setTime(formatString(end,"yyyy-MM-dd"));
datas.add(formatDate(cb.getTime(),"yyyy-MM-dd"));while(cb.before(ce)){
cb.add(Calendar.DAY_OF_MONTH,1);
datas.add(formatDate(cb.getTime(),"yyyy-MM-dd"));
}returndatas;
}/*** 获取指定范围内的月份集合
*@parambefore
*@paramend
*@return*@throwsException*/
public static List getRangeMonth(String before,String end)throwsException{
List months=new ArrayList();
Calendar cb=Calendar.getInstance();
Calendar ce=Calendar.getInstance();
cb.setTime(formatString(before,"yyyy-MM"));
ce.setTime(formatString(end,"yyyy-MM"));
months.add(formatDate(cb.getTime(),"yyyy-MM"));while(cb.before(ce)){
cb.add(Calendar.MONTH,1);
months.add(formatDate(cb.getTime(),"yyyy-MM"));
}returnmonths;
}public static void main(String[] args) throwsException{/*List datas=getRangeDatas("2017-10-28","2017-11-02");
for(String data:datas){
System.out.println(data);
}*/List months=getRangeMonth("2017-09","2018-12");for(String month:months){
System.out.println(month);
}
}