Мы уже видели, как рассчитать количество Дней между двумя датами до Java 8.
Сегодня мы обсудим, как рассчитать количество дней между двумя датами в Java 8.
Чтобы вычислить количество дней между двумя датами, мы можем использовать метод DAYS.between() класса java.time.temporal.ChronoUnit.
Синтаксис DAYS.between():
long noOfDaysBetween = DAYS.between(startDate, endDate); // or alternatively long noOfDaysBetween = startDate.until(endDate, DAYS);
startDate является инклюзивным, а endDate является эксклюзивным при расчете noOfDaysBetween.
- Количество дней между двумя датами с использованием метода DAYS.between()
package com.algorithmforum.date; import java.time.LocalDate; import java.time.Month; import java.time.temporal.ChronoUnit; public class DaysDiffJava8 { public static void main(String[] args) { // 24-May-2017, change this to your desired Start Date LocalDate dateBefore = LocalDate.of(2017, Month.MAY, 24); // 29-July-2017, change this to your desired End Date LocalDate dateAfter = LocalDate.of(2017, Month.JULY, 29); long noOfDaysBetween = ChronoUnit.DAYS.between(dateBefore, dateAfter); System.out.println(noOfDaysBetween); } }
2. Разбор дат и последующее вычисление дней между ними
В приведенном выше примере мы передаем дату в желаемом формате, однако, если у вас есть дата в виде строки, вы можете проанализировать дату, чтобы преобразовать ее в Java 8 LocalDate. После разбора мы вычисляем дни между аналогично приведенному выше примеру.
Вы можете преобразовать дату любого формата в нужный формат. Обратитесь к учебнику по Java — парсингу даты для примеров парсинга даты.
package com.algorithmforum.date; import java.time.LocalDate; import java.time.temporal.ChronoUnit; public class DaysDiffJava8 { public static void main(String[] args) { String dateBeforeString = "2017-05-24"; String dateAfterString = "2017-07-29"; // Parsing the date LocalDate dateBefore = LocalDate.parse(dateBeforeString); LocalDate dateAfter = LocalDate.parse(dateAfterString); // calculating number of days in between long noOfDaysBetween = ChronoUnit.DAYS.between(dateBefore, dateAfter); // displaying the number of days System.out.println(noOfDaysBetween); } }