【java】如何根据开始时间和结束时间获取该时间段内的所有时间

如 2016-08-01 20 到2016-08-02 01之间的所有时间:2016-08-01 20,2016-08-01 21,2016-08-01 22,2016-08-01 23,2016-08-02 00,2016-08-02 01

用Calender,计算间隔,然后逐步一天天增加即可

java方法,返回两个日期内的所有date集合,根据开始时间、结束时间得到两个时间段内所有的日期

java方法,返回两个日期内的所有date集合,根据开始时间、结束时间得到两个时间段内所有的日期

1、以下的这个方法适用于jdk1.5以上的版本

帮助
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/**

  • 根据开始时间和结束时间返回时间段内的时间集合
  • @param beginDate
  • @param endDate
  • @return List */ @SuppressWarnings("unchecked") public static List getDatesBetweenTwoDate(Date beginDate, Date endDate) {
    List lDate = new ArrayList(); lDate.add(beginDate);//把开始时间加入集合 Calendar cal = Calendar.getInstance(); //使用给定的 Date 设置此 Calendar 的时间 cal.setTime(beginDate); boolean bContinue = true; while (bContinue) { //根据日历的规则,为给定的日历字段添加或减去指定的时间量 cal.add(Calendar.DAY_OF_MONTH, 1); // 测试此日期是否在指定日期之后 if (endDate.after(cal.getTime())) { lDate.add(cal.getTime()); } else { break; } } lDate.add(endDate);//把结束时间加入集合 return lDate; }

2、以下的方法适用于jdk1.4以下的版本

帮助
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/**

  • 根据开始时间和结束时间返回时间段内的时间集合
  • @param beginDate
  • @param endDate
  • @return List */ public static List getDatesBetweenTwoDate(Date beginDate, Date endDate) {
    List lDate = new ArrayList(); lDate.add(beginDate);//把开始时间加入集合 Calendar cal = Calendar.getInstance(); //使用给定的 Date 设置此 Calendar 的时间 cal.setTime(beginDate); boolean bContinue = true; while (bContinue) { //根据日历的规则,为给定的日历字段添加或减去指定的时间量 cal.add(Calendar.DAY_OF_MONTH, 1); // 测试此日期是否在指定日期之后 if (endDate.after(cal.getTime())) { lDate.add(cal.getTime()); } else { break; } } lDate.add(endDate);//把结束时间加入集合 return lDate; }

3、调用测试