如何通过将它们转换为长时间来减去两次

时间:2012-08-21 06:45:29

标签: java time long-integer

  

可能重复:
  How can I calculate a time span in Java and format the output?

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

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

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

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

即如果结果长30分钟,我希望它显示在00:30:00。

我该怎么做?

提前致谢

3 个答案:

答案 0 :(得分: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);

答案 1 :(得分: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));

答案 2 :(得分:0)

Date elapsed = new Date(checkVar);
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
String formatedTime = sdf.format(elapsed);