15

我需要从毫秒格式化秒和分钟。我正在使用倒数计时器。有人有建议吗?我看了乔达时间。但我需要的只是一种格式,所以我有 1:05 而不是 1:5。谢谢

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

您可以使用标准的日期格式化类来做到这一点,但这可能有点重。我只会使用 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 回答