在JAVA中打印2个日期之间的小时,秒的日期

时间:2018-05-06 11:16:25

标签: java

我正在尝试用一种方法来打印例如

之间的所有日期
2018/20/01 15:20:31:001
2018/20/01 19:34:03:001

我想看到的输出是:

2018/20/01 15:20:31:001
2018/20/01 15:20:31:002
2018/20/01 15:20:31:003
2018/20/01 15:20:31:004
2018/20/01 15:20:31:005
2018/20/01 15:20:31:006
...
2018/20/01 19:34:02:999
2018/20/01 19:34:03:001

任何人都可以帮助我吗?因为我能找到的只是没有时间,分钟等的解决方案而且我真的需要它。

2 个答案:

答案 0 :(得分:1)

您需要DateTimeFormatter格式化日期。

然后你需要两个LocalDateTime s:一个用于开始日期,一个用于结束日期。

现在你可以创建一个循环来打印出开始日期,然后通过日期的方法.plusSeconds()更改它(它是不可变的,但你可以回收变量。)到达下一秒(或者你呢?确实想要毫秒分辨率?),打印,冲洗和重复,直到两个日期相等。

Here是一个用毫秒格式化日期的例子。

答案 1 :(得分:0)

以下是使用O(N)执行此操作的示例:

java.time

打印:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/dd/MM HH:mm:ss:SSS");
LocalDateTime dt1 = LocalDateTime.parse("2018/20/01 15:20:31:001", formatter);
LocalDateTime dt2 = LocalDateTime.parse("2018/20/01 19:34:03:001", formatter);
System.out.println(Duration.between(dt1, dt2));

4小时13分32秒。

要获得与您展示的输出类似的输出,您可以执行以下操作:

PT4H13M32S