首页 > 文章列表 > 如何使用Java 9中的LocalDate.datesUntil()方法获取日期?

如何使用Java 9中的LocalDate.datesUntil()方法获取日期?

327 2023-08-30

LocalDate.datesUntil()方法创建了两个本地日期之间的流

instances 方法允许我们可选地指定步长。该方法有两种变体,第一种接受end date 作为参数,并返回当前日期和结束日期之间的日期列表;而第二种接受一个Period 对象作为参数,该对象提供了一种跳过日期的方式,并仅流式传输start end 日期之间的一部分日期。

语法

public Stream<LocalDate> datesUntil(LocalDate end)
public Stream<LocalDate> datesUntil(LocalDate end, Period step)

Example

import java.time.LocalDate;
import java.time.Period;
import java.time.Month;
import java.util.stream.Stream;

public class DatesUntilMethodTest {
   public static void main(String args[]) {
      final LocalDate myBirthday = LocalDate.of(1980, Month.AUGUST, 8);
      final LocalDate christmas = LocalDate.of(1980, Month.DECEMBER, 25);

      System.out.println("Day-Stream:n");
      final Stream<LocalDate> daysUntil = myBirthday.datesUntil(christmas);
      daysUntil.skip(50).limit(10).forEach(System.out::println);

      System.out.println("nMonth-Stream:n");
      final Stream monthsUntil = myBirthday.datesUntil(christmas, Period.ofMonths(1));
      monthsUntil.limit(5).forEach(System.out::println);
   }
}

输出

Day-Stream:

1980-09-27
1980-09-28
1980-09-29
1980-09-30
1980-10-01
1980-10-02
1980-10-03
1980-10-04
1980-10-05
1980-10-06

Month-Stream:

1980-08-08
1980-09-08
1980-10-08
1980-11-08
1980-12-08