获得毫秒格式

Jon*_*nno 1 java string format android milliseconds

我试图让这个字符串返回Minute:Second:Millisecond for MediaPlayer.我找到了这段代码,但无法弄清楚如何使毫秒工作并将其放在2位小数.我确信这对合适的人来说很简单!

private String getTimeString(long millis) {
        StringBuffer buf = new StringBuffer();

        int hours = (int) (millis / (1000*60*60));
        int minutes = (int) (( millis % (1000*60*60) ) / (1000*60));
        int seconds = (int) (( ( millis % (1000*60*60) ) % (1000*60) ) / 1000);


        buf
            .append(String.format("%02d", hours))
            .append(":")
            .append(String.format("%02d", minutes))
            .append(":")
            .append(String.format("%02d", seconds));


        return buf.toString();
    }
Run Code Online (Sandbox Code Playgroud)

总是谢谢你们

Flo*_*ian 7

一秒钟内有1000毫秒,即毫秒需要3个小数位:

/** return time in format 1:23.456 */
private String getTimeString(long millis) {
    int minutes = (int) (millis / (1000 * 60));
    int seconds = (int) ((millis / 1000) % 60);
    int milliseconds = (int) (millis % 1000);
    String.format("%d:%02d.%03d", minutes, seconds, milliseconds);
}
Run Code Online (Sandbox Code Playgroud)

如果你绝对想要2位数毫秒,你实际上得到1/100秒而不是毫秒:

/** return time in format 1:23.45 */
private String getTimeString(long millis) {
    int minutes = (int) (millis / (1000 * 60));
    int seconds = (int) ((millis / 1000) % 60);
    int seconds100 = (int) ((millis / 10) % 100);
    String.format("%d:%02d.%02d", minutes, seconds, seconds100);
}
Run Code Online (Sandbox Code Playgroud)

但是,媒体播放器的常见显示格式是使用一个数字,持续10秒:

/** return time in format 1:23.4 */
private String getTimeString(long millis) {
    int minutes = (int) (millis / (1000 * 60));
    int seconds = (int) ((millis / 1000) % 60);
    int seconds10 = (int) ((millis / 100) % 10);
    String.format("%d:%02d.%d", minutes, seconds, seconds10);
}
Run Code Online (Sandbox Code Playgroud)