可能重复:
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。
我该怎么做?
提前致谢
答案 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);