LocalDate.datesUntil() 的语法
该方法有两种重载形式:
Stream<LocalDate> datesUntil(LocalDate end) Stream<LocalDate> datesUntil(LocalDate end, Period step)
第一个版本(即没有 Period
)在内部调用带有 Period.ofDays(1)
的第二个方法,并生成相差 1 天的日期流。
Java 8 中生成日期流
import java.time.LocalDate; import java.time.Period; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; public class Java9StreamExamples { public static void main(String[] args) { System.out.println( getDaysInJava8(LocalDate.now(), 10) ); } //Stream of dates with 1 day difference public static List<LocalDate> getDaysInJava8(LocalDate start, int days) { return Stream.iterate(start, date -> date.plusDays(1)) .limit(days) .collect(Collectors.toList()); } }
Java 9 引入了一种新方法“LocalDate.datesUntil()”,它可以提供日期流。
使用 datesUntil()
可以轻松创建具有固定偏移量的日期流。
on It Road.com
使用 LocalDate.datesUntil() 的日期流示例
创建日期流:
import java.time.LocalDate; import java.time.Period; import java.util.List; import java.util.stream.Collectors; public class Java9StreamExamples { public static void main(String[] args) { System.out.println( getDaysInJava9(LocalDate.now(), LocalDate.now().plusDays(10)) ); System.out.println( getDaysInJava9Weeks(LocalDate.now(), LocalDate.now().plusWeeks(10)) ); } //Stream of dates with 1 day difference public static List<LocalDate> getDaysInJava9(LocalDate start, LocalDate end) { return start.datesUntil(end).collect(Collectors.toList()); } //Stream of dates with 1 week difference public static List<LocalDate> getDaysInJava9Weeks(LocalDate start, LocalDate end) { return start.datesUntil(end, Period.ofWeeks(1)).collect(Collectors.toList()); } }
日期:2020-09-17 00:10:06 来源:oir作者:oir