1

可能重复:
如何计算 Java 中的时间跨度并格式化输出?

如何通过将它们转换为长并再次将其转换回时间来减去两次?

我尝试通过将它们转换为长来减去两次。

    Long timeSpan = Long.valueOf(timespan.getValue().toString()) * 60;
    Long checkVar = (date.getTime() - testStartTime.getTime()) / 1000;

现在我如何将结果转换为时间?

也就是说,如果结果 long 是 30 分钟,我希望它显示 00:30:00 。

我怎样才能做到这一点?

提前致谢

4

3 回答 3

4

将您的时间(以秒为单位)转换为单独的 HH:MM:SS 组件很简单:

int h = checkVar / 3600;
int m = (checkVar / 60) % 60;
int s = (checkVar % 60);

String time = String.format("%02d:%02d:%02d", h, m, s);
于 2012-08-21T06:48:58.307 回答
2

正如已经建议的那样,看看Joda Time

PeriodFormatter timeFormatter = new PeriodFormatterBuilder().printZeroAlways().
                appendHours().appendSeparator(":").
                appendMinutes().appendSeparator(":").
                appendSeconds().toFormatter();

DateTime startTime = new DateTime(1972, 3, 8, 15, 30);
DateTime endTime = new DateTime();

Period period = new Period(startTime, endTime);
int days = period.getDays();
int months = period.getMonths();
int years = period.getYears();

System.out.println(period.toString(timeFormatter));
于 2012-08-21T07:18:43.197 回答
0
Date elapsed = new Date(checkVar);
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
String formatedTime = sdf.format(elapsed);
于 2012-08-21T06:51:29.540 回答