Android:从毫秒到min-sec格式的转换返回错误的值

时间:2015-12-08 17:35:48

标签: android

这是一个简短的片段,可将毫秒值转换为字符串格式的min-sec格式。

private String fromMillisecToFormattedTime(long millisec) {
    return String.format("%d:%d",
            TimeUnit.MILLISECONDS.toMinutes(millisec),
            TimeUnit.MILLISECONDS.toSeconds(millisec),
            TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisec))
    );
}

我编写此代码以获取媒体的运行时间,但此方法显示的值不会返回我期望的值。例如,样本媒体的原始运行时间是4:12,而方法返回4:252。

任何纠正计算的解决方案?

1 个答案:

答案 0 :(得分:1)

你需要减去这些值而不是追加它, 试试这个:

return String.format("%d:%d",
TimeUnit.MILLISECONDS.toMinutes(millisec),
TimeUnit.MILLISECONDS.toSeconds(millisec)- TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisec))
);