Java 如何算出两个时间字符串的00:00:00格式的时长
时间: 2023-08-18 10:03:49 浏览: 171
java实现字符串匹配求两个字符串的最大公共子串
Java 中可以使用 `java.time.Duration` 类来计算两个时间之间的时长。假设有两个时间字符串 `time1` 和 `time2`,格式为 `HH:mm:ss`,可以按照以下步骤计算它们的时长:
1. 将时间字符串解析为 `LocalTime` 对象,例如:
```
LocalTime t1 = LocalTime.parse(time1);
LocalTime t2 = LocalTime.parse(time2);
```
2. 使用 `Duration.between()` 方法计算两个时间之间的时长,例如:
```
Duration duration = Duration.between(t1, t2);
```
3. 将时长格式化为 `00:00:00` 的字符串,可以使用 `Duration` 类中的 `toHours()`, `toMinutes()`, `toSeconds()` 方法计算小时、分钟、秒数,并使用 `String.format()` 方法将它们格式化为字符串,例如:
```
long hours = duration.toHours();
long minutes = duration.toMinutes() % 60;
long seconds = duration.getSeconds() % 60;
String durationStr = String.format("%02d:%02d:%02d", hours, minutes, seconds);
```
完整的代码示例:
```
import java.time.Duration;
import java.time.LocalTime;
public class TimeDuration {
public static void main(String[] args) {
String time1 = "10:20:30";
String time2 = "12:30:45";
LocalTime t1 = LocalTime.parse(time1);
LocalTime t2 = LocalTime.parse(time2);
Duration duration = Duration.between(t1, t2);
long hours = duration.toHours();
long minutes = duration.toMinutes() % 60;
long seconds = duration.getSeconds() % 60;
String durationStr = String.format("%02d:%02d:%02d", hours, minutes, seconds);
System.out.println("Duration: " + durationStr);
}
}
```
阅读全文