よくわかりません。このスレッドに偶然出会った後、私はフォーマットを備えたカウントダウンタイマーをフォーマットする方法を理解しようとしました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))
代わりにこれであるはずです。
00:59:59
、そうであるべきだ01:00:00
。