以数字形式获得持续时间

时间:2017-12-19 11:21:19

标签: java android

我有一个音乐播放器,它有一个名为getcurrentposn的函数,以毫秒为单位返回当前位置,我想以这种格式mm:ss在TextView中显示结果。

我制作了一个getAsTime函数,它以数字形式返回我的应用中的时间,即mm:ss

这就是我的尝试:

   long minutes =  TimeUnit.MILLISECONDS.toMinutes(millis); 
   long seconds = minutes * 60;
   if(millis!=0) {
        long totalSeconds =  TimeUnit.MILLISECONDS.toSeconds(millis);
        if(seconds!=0)
        seconds = totalSeconds / seconds;
        else seconds=totalSeconds;
    }


    if(minutes<10 && seconds <10)
        return "0"+minutes + ":" +"0"+ seconds;


    if(minutes<10 && seconds>=10)
        return "0"+minutes + ":" + seconds;

    if(minutes>=10 && seconds<10)
        return minutes + ":" +"0"+ seconds;

    return minutes+":"+seconds;

}

但问题似乎并不正常。

是否有内置功能?如果不是我如何以正确的方式实现它?

示例:01:00          02:09

1 个答案:

答案 0 :(得分:2)

首先将毫秒转换为秒:

int t = millis / 1000;

然后将它们转换为分钟和秒钟

int minutes = t / 60; //since both are ints, you get an int
int seconds = t % 60;

然后返回一个格式化的字符串,如你想要的那样添加填充

return String.format("%02d:%02d", minutes, seconds);