通過startDate和endDate來獲取一段時間的日期集合
阿新 • • 發佈:2018-12-18
前段在做網站首頁需要顯示很多資料報表,就是根據輸入的startDate和endDate來展示這段時間的資料;
思路:
1、把從Controller傳入的startDate、endDate通過SimpleDateFormatjiexie解析(String --> Date)為日期型別;
2、轉成long型的毫秒數,判斷異常
3、按時間升序,則將sDate賦值給Calendar子物件,降序反之
4、建立List,將eDate時間之前的時間一個個新增進去(格式化為String型別)
public static List<String> getPerDaysByStartAndEndDate(String startDate, String endDate) { DateFormat format = new SimpleDateFormat(PATTERN_YYYY_MM_DD); try { Date sDate = format.parse(startDate); Date eDate = format.parse(endDate); long start = sDate.getTime(); //獲得毫秒數 long end = eDate.getTime(); if (start > end) { return null; } Calendar calendar = Calendar.getInstance(); calendar.setTime(sDate); //降序 setTime(eDate) List<String> res = new ArrayList<String>(); while (end >= start) { res.add(format.format(calendar.getTime())); calendar.add(Calendar.DAY_OF_MONTH, 1); //降序 add(Calender.DAY_OF_MONTH, -1) start = calendar.getTimeInMillis(); //降序 end = calender.getTimeInMillis(); } return res; } catch (ParseException e) { e.printStackTrace(); } return null; }