Tôi bối rối. Sau khi tình cờ tìm thấy chủ đề này , tôi đã cố gắng tìm ra cách định dạng đồng hồ đếm ngược có định dạng hh:mm:ss.
Đây là nỗ lực của tôi -
//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)));
Vì vậy, khi tôi thử một giá trị như 3600000ms, tôi nhận được 01:59:00, đó là sai vì nó phải như vậy 01:00:00. Rõ ràng có gì đó không đúng với logic của tôi, nhưng hiện tại, tôi không thể thấy nó là gì!
Có ai giúp được không?
Biên tập -
Đã sửa nó. Đây là cách đúng để định dạng mili giây để hh:mm:ssđịnh dạng -
//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))));
Vấn đề là thế này TimeUnit.MINUTES.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)). Đáng lẽ ra nó phải thế này TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)).
00:59:59, nó nên được01:00:00.