两次之间的差异,以秒为单位

时间:2017-05-02 03:42:13

标签: java

我试图以给定格式打印两次之间的差异。我尝试了所有可能的解决方案,但无法打印下面的格式

start time: 15:15:30 
end time: 15:15:37

difference times:
    15:15:31
    15:15:32
    15:15:33
    15:15:34
    15:15:35
    15:15:36

有关如何使用Java 8实现此目的的任何建议?

2 个答案:

答案 0 :(得分:2)

使用java.time库:

LocalTime startTime = LocalTime.parse("15:15:30");
LocalTime endTime = LocalTime.parse("15:15:37");
for (LocalTime current = startTime; current.isBefore(endTime); current = current.plusSeconds(1)) {
    System.out.println(current);
}

答案 1 :(得分:0)

您可以制作2个不同的Calendar个对象,并将时间设置为开始时间和结束时间。

比较这两个实例并添加一秒,直到它们变得相等。您可以同时打印它们。

Calendar startTime = Calendar.getInstance(), endTime = Calendar.getInstance();    
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");

startTime.setTime(sdf.parse("15:15:30"));
startTime.add(Calendar.SECOND, 1);
endTime.setTime(sdf.parse("15:15:37"));

while(startTime.compareTo(endTime) < 0) {
    System.out.println(sdf.format(startTime.getTime()));
    startTime.add(Calendar.SECOND, 1);
}

<强>输出

15:15:31
15:15:32
15:15:33
15:15:34
15:15:35
15:15:36