Java获取两个时间段内的每一秒不用循环
时间: 2024-03-15 19:46:46 浏览: 85
你可以使用Java 8中的DateTime API和流操作来获取两个时间段内的每一秒的集合,而不使用循环。以下是一个示例代码:
```java
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class Example {
public static void main(String[] args) {
LocalDateTime start = LocalDateTime.of(2021, 1, 1, 0, 0, 0);
LocalDateTime end = LocalDateTime.of(2021, 1, 1, 0, 0, 10);
List<LocalDateTime> seconds = Stream.iterate(start, time -> time.plusSeconds(1))
.limit(ChronoUnit.SECONDS.between(start, end))
.collect(Collectors.toList());
System.out.println(seconds);
}
}
```
在此示例中,我们使用了Java 8中的Stream.iterate方法来创建一个无限的时间戳流。我们从开始时间开始,每次递增一秒,直到无限流达到一个条件为止。在此示例中,我们设置流的大小为时间段的秒数,这可以通过ChronoUnit.SECONDS.between方法来计算。
最后,我们使用collect方法将生成的时间戳流转换为一个列表,并将其打印出来以验证输出是否正确。
阅读全文