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

Java如何计算程序运行时长并将时间差转换为字符串输出

Java 计算LocalDateTime时间差并转字符串的实现方法

你可以通过Java 8引入的时间相关工具类实现差值计算,以下是两种常用的实现方案:

方案1:使用Duration类获取格式化的时长字符串

java.time.Duration是专门用于计算两个时间点间隔的工具类,可以很方便的拆成天、时、分、秒、毫秒等不同单位的数值,拼接成你需要的字符串格式:

import java.time.Duration;
import java.time.LocalDateTime;

// 你的原有代码
LocalDateTime start = LocalDateTime.now();
// 你的业务代码执行
LocalDateTime end = LocalDateTime.now();

// 计算时间差,注意start要放在前面,否则会得到负的时长
Duration duration = Duration.between(start, end);

// Java 9及以上版本可以直接用自带的part方法拆分
long days = duration.toDays();
long hours = duration.toHoursPart();
long minutes = duration.toMinutesPart();
long seconds = duration.toSecondsPart();
long millis = duration.toMillisPart();
String runTime = String.format("程序运行时长:%d天%d时%d分%d秒%d毫秒", days, hours, minutes, seconds, millis);
// 直接打印输出即可
System.out.println(runTime);

如果使用的是Java 8版本,没有上述part系列方法,可以手动计算各单位的剩余值:

// Java 8兼容写法
long totalMillis = duration.toMillis();
long days = totalMillis / (1000 * 60 * 60 * 24);
long hours = (totalMillis / (1000 * 60 * 60)) % 24;
long minutes = (totalMillis / (1000 * 60)) % 60;
long seconds = (totalMillis / 1000) % 60;
long millis = totalMillis % 1000;
String runTime = String.format("程序运行时长:%d天%d时%d分%d秒%d毫秒", days, hours, minutes, seconds, millis);

方案2:使用ChronoUnit获取指定单位的总时长

如果你只需要单一单位的总时长(比如总运行毫秒数、总运行秒数),可以用java.time.temporal.ChronoUnit实现:

import java.time.temporal.ChronoUnit;
import java.time.LocalDateTime;

LocalDateTime start = LocalDateTime.now();
// 业务代码执行
LocalDateTime end = LocalDateTime.now();

// 示例:获取总运行毫秒数
long totalMillis = ChronoUnit.MILLIS.between(start, end);
String runTime = "程序总运行毫秒数:" + totalMillis;
System.out.println(runTime);

// 要获取其他单位把MILLIS替换即可,比如SECONDS(秒)、MINUTES(分钟)、HOURS(小时)

补充说明

  • 如果你的作业没有强制要求用LocalDateTime,统计短代码段运行时间更推荐用System.nanoTime(),精度更高,也不会受系统时间修改的影响
  • 计算差值时一定要把开始时间作为第一个参数传入between方法,否则会得到负数结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 12:54:03