Как я могу "красиво напечатать" Duration в Java? - PullRequest
71 голосов
/ 12 августа 2010

Кто-нибудь знает библиотеку Java, которая может печатать числа в миллисекундах точно так же, как это делает C #?

Например, длина 123456 мс будет напечатана как 4d1h3m5s.

Ответы [ 11 ]

2 голосов
/ 25 июня 2018

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.

...