Интервал между двумя ZonedDateTime

Как рассчитать полную разницу между двумя экземплярами ZonedDateTime с одним и тем же ZoneId? Другими словами, разница во все времена объединяет.

Использование Java 8 и не использовать какие-либо сторонние библиотеки, такие как Joda или что-то еще.

ZonedDateTime start = ZonedDateTime.parse("2007-05-11T15:30:00Z");
ZonedDateTime end = ZonedDateTime.parse("2008-03-01T13:00:00Z");

Duration.between(start, end); // PT7077H30M
Period.between(start.toLocalDate(), end.toLocalDate()) // P9M19D

Использование Joda-Time

import org.joda.time.DateTime;
import org.joda.time.Period;

DateTime start = DateTime.parse("2007-05-11T15:30:00Z");
DateTime end = DateTime.parse("2008-03-01T13:00:00Z");

Period period = new Period(start, end); // P9M2W4DT21H30M

Как получить тот же результат, используя стандартный API даты/времени?


person Edgar Asatryan    schedule 19.07.2019    source источник
comment
Duration.between(start, end) ... docs.oracle.com/javase/8/docs/api/java/time/   -  person Brad    schedule 19.07.2019
comment
Я уже сделал ответ, а потом вы его закрыли, очень грустно.   -  person Alan Sereb    schedule 19.07.2019
comment
Я снова открыл его для вас. Но я думаю, что кроме кодинга с Period и Duration ответа не будет.   -  person Seelenvirtuose    schedule 19.07.2019
comment
@Brad Как получить месяцы и дни из Duration? Period дает 9 months 19 days.   -  person Edgar Asatryan    schedule 19.07.2019
comment
Я в замешательстве. В вашем примере кода используется java.time. Но вы говорите о Joda-Time.   -  person Basil Bourque    schedule 19.07.2019
comment
@BasilBourque Я спрашиваю, как добиться того же результата, что и в Joda, но используя java.time .   -  person Edgar Asatryan    schedule 19.07.2019
comment
Вы имеете в виду буквально эту строку как вывод? Отредактируйте свой вопрос, чтобы уточнить. Кроме того, эта тема уже неоднократно поднималась. Ищите Stack Overflow перед публикацией.   -  person Basil Bourque    schedule 19.07.2019
comment
Совет: редко имеет смысл смешивать годы-месяцы-дни с часами-минутами-секундами (вдумайтесь). Но если вы настаиваете на этом, посмотрите библиотеку ThreeTen-Extra с ее классом PeriodDuration.   -  person Basil Bourque    schedule 19.07.2019
comment
@BasilBourque Я не имел в виду строку, но вы можете так думать. Поискал перед публикацией и ничего подходящего не нашел, все постят для расчета разницы в одном ChronoUnit.   -  person Edgar Asatryan    schedule 19.07.2019
comment
Давайте продолжим это обсуждение в чате.   -  person Edgar Asatryan    schedule 19.07.2019