Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取毫秒格式_Java_Android_String_Format_Milliseconds - Fatal编程技术网

Java 获取毫秒格式

Java 获取毫秒格式,java,android,string,format,milliseconds,Java,Android,String,Format,Milliseconds,我试图让这个字符串为我的MediaPlayer返回分:秒:毫秒。我找到了这段代码,但不知道如何使毫秒工作,并将其放在小数点后2位。我相信这对合适的人来说很简单 private String getTimeString(long millis) { StringBuffer buf = new StringBuffer(); int hours = (int) (millis / (1000*60*60)); int minutes = (int)

我试图让这个字符串为我的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();
    }

谢谢大家

如果你想把毫秒放在小数点后两位,请记住,你只能显示10毫秒的增量;1ms=0.001s,小数点后三位。但无论如何,您要查找的代码是:

int rem_milliseconds = (int)(millis % 1000); // Remaining ms after last second
...
.append(String.format("%02d", rem_milliseconds));
我把它保留在小数点后两位。

试试这个:

private String getTimeString(long millis) {
    long minutes = TimeUnit.MILLISECONDS.toMinutes(millis);
    long seconds = TimeUnit.MILLISECONDS.toSeconds(millis) -
                   TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis));
    millis -= TimeUnit.MINUTES.toMillis(minutes) + TimeUnit.SECONDS.toMillis(seconds);

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

一秒钟内有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);
}
/** 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);
}
如果你绝对想要2位数的毫秒,你实际上得到的是1/100秒,而不是毫秒:

/** 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);
}
/** 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);
}
但是,媒体播放器的一种常见显示格式是使用一位数字表示10/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);
}

也许你应该看看?