A Java 8 версия на основе ответа пользователя user678573 :
private static String humanReadableFormat(Duration duration) {
return String.format("%s days and %sh %sm %ss", duration.toDays(),
duration.toHours() - TimeUnit.DAYS.toHours(duration.toDays()),
duration.toMinutes() - TimeUnit.HOURS.toMinutes(duration.toHours()),
duration.getSeconds() - TimeUnit.MINUTES.toSeconds(duration.toMinutes()));
}
... так как в Java 8 нет PeriodFormatter и нет методов, таких как getHours, getMinutes, ...
Я был бы рад увидеть лучшую версию для Java 8.