求多个hh:mm:ss.sss(时分秒.毫秒)总时长

来源:互联网 发布:js防水涂料套什么定额 编辑:程序博客网 时间:2024/05/16 06:51

最近项目总需要用到多个求多个hh:mm:ss.sss(时分秒.毫秒)总时长。

场景:

多个mp3都有时长 格式如hh:mm:ss.sss(时分秒.毫秒)

但是怎么求总时长呢?

package test;import org.apache.commons.lang3.StringUtils;public class TimeTest{public static void main(String[] args) {//多个时间String[] str = {"10:02:03.000","05:06:03.000"};//计算总时长long itemTotalTime=0;for (int i = 0; i < str.length; i++) {String[] s = StringUtils.split(str[i], ".");String[] s1 = StringUtils.split(s[0], ":");itemTotalTime+= Long.valueOf(s1[0]) * 3600000 + Long.valueOf(s1[1]) * 60000 + Long.valueOf(s1[2]) * 1000 + Long.valueOf(s[1]);}//获取小时long hour = itemTotalTime / (60 * 60 * 1000);//获取分钟long minute = (itemTotalTime - hour * 60 * 60 * 1000) / (60 * 1000);//获取时间long second = (itemTotalTime - hour * 60 * 60 * 1000 - minute * 60 * 1000) / 1000;if (second >= 60) {second = second % 60;minute += second / 60;}if (minute >= 60) {minute = minute % 60;hour += minute / 60;}String sh = "";String sm = "";String ss = "";//如果小于10前面补0if (hour < 10) {sh = "0" + String.valueOf(hour);} else {sh = String.valueOf(hour);}if (minute < 10) {sm = "0" + String.valueOf(minute);} else {sm = String.valueOf(minute);}if (second < 10) {ss = "0" + String.valueOf(second);} else {ss = String.valueOf(second);}System.out.println(sh + "时 " + sm + "分" + ss);}}
利用了import org.apache.commons.lang3.StringUtils;对字符串的切割操作

输出结果如下

15时 08分06

主要思想,将每个hh:mm:ss.sss(时分秒.毫秒)进行切割然后转换为微秒

然后累加计算

最后再转化为hh:mm:ss.sss(时分秒.毫秒)格式的数据


0 0
原创粉丝点击