Есть код:
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?
Можно сделать человеко-читаемый вид, например:
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
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости