import java.time.Duration;

public class Main {
	public static void main(String[] args) {
		// A sample input
		long millis = 123456789L;
		Duration duration = Duration.ofMillis(millis);
		// Default format
		System.out.println(duration);

		// Custom format
		// ####################################Java-8####################################
		String formattedElapsedTime = String.format("%2d:%02d:%02d.%d", duration.toHours() % 24,
				duration.toMinutes() % 60, duration.toSeconds() % 60, duration.toMillis() % 1000);
		System.out.println(formattedElapsedTime);
		// ##############################################################################

		// ####################################Java-9####################################
		formattedElapsedTime = String.format("%2d:%02d:%02d.%d", duration.toHoursPart(), duration.toMinutesPart(),
				duration.toSecondsPart(), duration.toMillisPart());
		System.out.println(formattedElapsedTime);
		// ##############################################################################
	}
}