15

ミリ秒から秒と分をフォーマットする必要があります。カウントダウンタイマーを使用しています。誰かが提案を持っていますか?ジョダタイムを見ました。しかし、必要なのはフォーマットだけなので、1:5 ではなく 1:05 です。ありがとう

private void walk() {
    new CountDownTimer(15000, 1000) {
        @Override
        public void onFinish() {
            lapCounter++;
            lapNumber.setText("Lap Number: " + lapCounter);
            run();
        }

        @Override
        public void onTick(long millisUntilFinished) {
            text.setText("Time left:" + millisUntilFinished/1000);
        }
    }.start();
}
4

4 に答える 4

49

標準の Date 書式設定クラスを使用してそれを行うこともできますが、それは少し重いかもしれません。String.format メソッドを使用するだけです。例えば:

int minutes = time / (60 * 1000);
int seconds = (time / 1000) % 60;
String str = String.format("%d:%02d", minutes, seconds);
于 2012-09-17T23:17:28.250 に答える
9

60分以上時間がないことがわかっている限り、これを行うための本当に怠惰な方法は、日付を作成して使用することですSimpleDateFormat

public void onTick(long millisUntilFinished) {
     SimpleDateFormat dateFormat = new SimpleDateFormat("mm:ss");
     dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
     Date date = new Date(millisUntilFinished);
     text.setText("Time left:" + dateFormat.format(date));
}
于 2012-09-17T23:12:59.617 に答える
7

私は使うだろう

org.apache.commons.lang.time.DurationFormatUtils.formatDuration(millisUntilFinished, "mm:ss")
于 2015-02-11T10:37:38.253 に答える
0

Apache Commons の StopWatch クラスを使用しました。その toString メソッドのデフォルトの出力は、ISO8601 のような時間:分:秒.ミリ秒です。

Apache ストップウォッチの例

于 2012-09-18T04:02:39.903 に答える