List<String> listTime = new ArrayList<String>();//获取所有时间 String beginTime =myForm.getBegDateStr(); String endTime=myForm.getEndDateStr(); SimpleDateFormat f=new SimpleDateFormat("yyyy-MM-dd"); Date dBegin; Date dEnd; try { dBegin = f.parse(beginTime); dEnd = f.parse(endTime); for(long i=dBegin.getTime();i<=dEnd.getTime();i+=86400000*(myForm.getDay()+1)){ Date d=new Date(i); String date=f.format(d); System.out.println(date); listTime.add(date); } } catch (ParseException e) { e.printStackTrace(); } 可测试的代码 public static void main(String[] args) { String begin="2010-01-01"; String end="2011-02-12"; int day=3; SimpleDateFormat f=new SimpleDateFormat("yyyy-MM-dd"); Date dBegin; Date dEnd; try { dBegin = f.parse(begin); dEnd = f.parse(end); for(long i=dBegin.getTime();i<=dEnd.getTime();i+=86400000*(day+1)){ Date d=new Date(i); String date=f.format(d); System.out.println(date); } } catch (ParseException e) { e.printStackTrace(); } } 结果: 2010-01-01 2010-01-05 2010-01-09 2010-01-13 2010-01-17 2010-01-21 2010-01-25 2010-01-29 2010-02-02 2010-02-06 2010-02-10