문제:
카운트다운 타이머를 사용하는 개발자는 다음과 같은 문제가 발생합니다. 밀리초를 원하는 "hh:mm:ss" 형식으로 변환하는 데 어려움이 있습니다. 초기 시도에서는 특히 시간을 초과하는 값의 경우 잘못된 시간 표시가 발생했습니다.
해결책:
주된 문제는 다음을 사용하여 시간을 밀리초로 변환하는 데 논리적 결함이 있기 때문에 발생했습니다. 몇 시간이 아닌 몇 분. 구체적으로 사용된 코드는 다음과 같습니다.
TimeUnit.MINUTES.toMinutes(TimeUnit.MILLISECONDS.toHours(millis))
다음과 같습니다.
TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis))
코드 데모:
수정된 코드 조각은 다음과 같습니다. 밀리초 형식을 "hh:mm:ss"로 올바르게 지정하는 경우:
String hms = 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)));
테스트 사례:
long millis = 3600000; String hms = ... // Replace with revised code from above System.out.println(hms); // Expected output: 01:00:00
또한 모듈러스 나누기를 사용하여 코드를 최적화할 수 있습니다. 빼기 대신:
String hms = String.format("%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(millis), TimeUnit.MILLISECONDS.toMinutes(millis) % TimeUnit.HOURS.toMinutes(1), TimeUnit.MILLISECONDS.toSeconds(millis) % TimeUnit.MINUTES.toSeconds(1));
두 변형 모두 올바른 "hh:mm:ss" 형식을 달성하고 TimeUnit API를 활용하여 변환을 원활하게 처리합니다.
위 내용은 Java에서 밀리초를 \"hh:mm:ss\" 형식으로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!