よくわかりません。このスレッドに出くわした後、私はフォーマットを持つカウントダウンタイマーをフォーマットする方法を見つけようとしましたhh:mm:ss
。
これが私の試みです-
//hh:mm:ss
String.format("%02d:%02d:%02d",
TimeUnit.MILLISECONDS.toHours(millis),
TimeUnit.MILLISECONDS.toMinutes(millis) -
TimeUnit.MINUTES.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)),
TimeUnit.MILLISECONDS.toSeconds(millis) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)));
したがって、のような値を試してみると、3600000ms
が得られますが01:59:00
、これはであるはずなので間違っています01:00:00
。明らかに私の論理に何か問題がありますが、現時点ではそれが何であるかわかりません!
誰か助けてもらえますか?
編集 -
修正しました。ミリ秒をフォーマットしてフォーマットする正しい方法は次のとおりhh:mm:ss
です-
//hh:mm:ss
String.format("%02d:%02d:%02d",
TimeUnit.MILLISECONDS.toHours(millis),
TimeUnit.MILLISECONDS.toMinutes(millis) -
TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)),
TimeUnit.MILLISECONDS.toSeconds(millis) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis))));
問題はこれでしたTimeUnit.MINUTES.toMinutes(TimeUnit.MILLISECONDS.toHours(millis))
。TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis))
代わりにこれだったはずです。