You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Java(如stream())生成固定增量递增的时间序列列表

Java生成固定增量的时间序列

Java 8及以上的标准库可以通过Stream结合java.time API实现按固定增量生成时间序列,不需要额外工具类,以下是对应场景的实现示例:

按秒递增

import java.time.LocalTime;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class TimeSequence {
    public static void main(String[] args) {
        LocalTime startTime = LocalTime.parse("10:00:00");
        int interval = 2; // 秒
        int count = 100;

        List<String> timeSequence = Stream.iterate(startTime, t -> t.plusSeconds(interval))
                .limit(count)
                .map(LocalTime::toString)
                .collect(Collectors.toList());
        
        // 输出示例:["10:00:00", "10:00:02", ...]
        System.out.println(timeSequence);
    }
}

按分钟递增

import java.time.LocalTime;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class TimeSequence {
    public static void main(String[] args) {
        LocalTime startTime = LocalTime.parse("10:00:00");
        int interval = 5; // 分钟
        int count = 100;

        List<String> timeSequence = Stream.iterate(startTime, t -> t.plusMinutes(interval))
                .limit(count)
                .map(LocalTime::toString)
                .collect(Collectors.toList());
        
        // 输出示例:["10:00:00", "10:05:00", ...]
        System.out.println(timeSequence);
    }
}

按小时递增

import java.time.LocalTime;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class TimeSequence {
    public static void main(String[] args) {
        LocalTime startTime = LocalTime.parse("10:00:00");
        int interval = 1; // 小时
        int count = 100;

        List<String> timeSequence = Stream.iterate(startTime, t -> t.plusHours(interval))
                .limit(count)
                .map(LocalTime::toString)
                .collect(Collectors.toList());
        
        // 输出示例:["10:00:00", "11:00:00", ...]
        System.out.println(timeSequence);
    }
}

补充说明

  • 如果需要处理包含日期的完整时间(如LocalDateTime),只需将LocalTime替换为LocalDateTime,调用对应的plusDays()、plusHours()等方法即可。
  • Java 9及以上版本可使用Stream.iterate的重载版本,支持自定义终止条件:
    Stream.iterate(startTime, t -> true, t -> t.plusSeconds(interval))
    

内容的提问来源于stack exchange,提问作者mbeider

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 03:10:15