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

Java实现打印两个日期间含时分秒毫秒的所有时间点

解决高精度时间区间遍历输出问题

我来帮你搞定这个需求!要打印两个包含毫秒的时间点之间的所有时间(逐毫秒递增),咱们可以用Python来实现,思路清晰还容易调试。

核心思路

  1. 把起始和结束的时间字符串转换成带毫秒精度的时间对象
  2. 从起始时间开始,每次递增1毫秒
  3. 逐个格式化输出时间,直到达到结束时间为止

Python代码实现

from datetime import datetime, timedelta

# 定义你的起始和结束时间字符串(注意这里的日期格式是年/日/月,和常见格式对应解析即可)
start_str = "2018/20/01 15:20:31:001"
end_str = "2018/20/01 19:34:03:001"

# 解析时间字符串:%Y=年,%d=日,%m=月,%H=时,%M=分,%S=秒,%f=毫秒(取前三位)
time_format = "%Y/%d/%m %H:%M:%S:%f"
start_time = datetime.strptime(start_str, time_format)
end_time = datetime.strptime(end_str, time_format)

# 初始化当前时间为起始时间
current_time = start_time

# 循环遍历并输出所有时间点
while current_time <= end_time:
    # 格式化输出,保留三位毫秒
    print(current_time.strftime("%Y/%d/%m %H:%M:%S:%f")[:-3], end='、')
    # 每次递增1毫秒
    current_time += timedelta(milliseconds=1)

关键细节说明

  • 时间解析格式%Y/%d/%m %H:%M:%S:%f完全匹配你给出的时间格式,其中%f会读取后面的三位毫秒数(Python的datetime默认支持微秒,取前三位就对应毫秒)
  • 用timedelta(milliseconds=1)实现逐毫秒递增,确保每个时间点都被覆盖
  • 循环条件current_time <= end_time保证最后一个结束时间点也会被输出

如果你的日期格式其实是年/月/日(可能是输入时的笔误),只需要把时间格式改成"%Y/%m/%d %H:%M:%S:%f"即可,其他代码不用调整。要是你需要用Java、C#等其他语言实现,核心思路也是一致的:解析高精度时间对象,逐毫秒递增遍历输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:36:17