Изменение вида вывода времени

153
31 октября 2021, 00:30

Есть код:

 ZoneId Syd = ZoneId.of("Australia/Sydney");
    ZoneId los = ZoneId.of("America/Los_Angeles");
    LocalDateTime dateTime = LocalDateTime.of(2019, 11, 11, 11, 15);
    LocalDateTime dateTime2 = LocalDateTime.of(2019, 11, 11, 6, 0);
    ZonedDateTime SydDateTime = ZonedDateTime.of(dateTime, Syd);
    ZonedDateTime losDateTime2 = ZonedDateTime.of(dateTime2, los);
    Duration duration = Duration.between(SydDateTime, losDateTime2);
    System.out.println(duration);

Вывод выглядит вот так: PT13H45M

Проблема: хочу сделать вывод более удобным для чтения, пытался использовать formatter, но постоянно выкидывает exception.

Вопрос: каким образом возможно вывести используя formatter?

Answer 1

Можно сделать человеко-читаемый вид, например:

public static String formatDuration(Duration duration) {
    long seconds = duration.getSeconds();
    long absSeconds = Math.abs(seconds);
    String positive = String.format(
        "%d:%02d:%02d",
        absSeconds / 3600,
        (absSeconds % 3600) / 60,
        absSeconds % 60);
    return seconds < 0 ? "-" + positive : positive;
}

использование:

...
Duration duration = Duration.between(SydDateTime, losDateTime2);
System.out.println(duration);
// PT13H45M
System.out.println(formatDuration(duration));
// 13:45:00
READ ALSO
Анти-паттерн сессия-на-операцию

Анти-паттерн сессия-на-операцию

В одной статье по Hibernate прочитал, что если вы хотите использовать многопоточность, то создавайте новую сессию для каждой CRUD-операцииТо есть...

113
ошибка при передаче данных между серверами

ошибка при передаче данных между серверами

В универе задали задание сделать сайт с усложненной архитектурой, чтобы был сервер на PHP, который от клиента принимал запросы, потом отправлял...

169
Обработка нажатия на оповещение

Обработка нажатия на оповещение

Нужно чтобы при нажатии на оповещение с определенным текстом открывалась определенная вкладка viewPager, но как это реализовать?

101
Чтения файла построчно

Чтения файла построчно

Написал в пятницу работало сегодня не работает что я не так делаю ?

75