ミリ秒から秒と分をフォーマットする必要があります。 countdownTimerを使用しています。誰かが推測を持っていますか?ジョダタイムを見ました。しかし、必要なのはフォーマットだけなので、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();
}
標準の日付フォーマットクラスを使用してそれを行うこともできますが、それは少し重いかもしれません。 String.formatメソッドを使用します。例えば:
int minutes = time / (60 * 1000);
int seconds = (time / 1000) % 60;
String str = String.format("%d:%02d", minutes, seconds);
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));
}
私は使用します
org.Apache.commons.lang.time.DurationFormatUtils.formatDuration(millisUntilFinished, "mm:ss")
Apache CommonsStopWatchクラスを使用しました。そのtoStringメソッドのデフォルト出力はISO8601のようで、hours:minutes:seconds.millisecondsです。