import java.util.concurrent.TimeUnit;
public class MyClass {
public static void main(String args[]) {
final long milliseconds = 42173610589L;
final long days = TimeUnit.MILLISECONDS.toDays(milliseconds);
final long hours = TimeUnit.MILLISECONDS.toHours(milliseconds) - TimeUnit.DAYS.toHours(TimeUnit.MILLISECONDS.toDays(milliseconds));
final long minutes = TimeUnit.MILLISECONDS.toMinutes(milliseconds) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(milliseconds));
final long seconds = TimeUnit.MILLISECONDS.toSeconds(milliseconds) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(milliseconds));
final long ms = TimeUnit.MILLISECONDS.toMillis(milliseconds) - TimeUnit.SECONDS.toMillis(TimeUnit.MILLISECONDS.toSeconds(milliseconds));
System.out.println(String.format("%d Days %d Hours %d Minutes %d Seconds and %d Milliseconds", days, hours, minutes, seconds, ms));
}
}
/*
run:
488 Days 2 Hours 53 Minutes 30 Seconds and 589 Milliseconds
*/