Конвертация между LocalDate и LocalDateTime

Научитесь преобразовывать LocalDate в LocalDateTime и из LocalDateTime в LocalDate в Java 8.

Иными словами, LocalDate представляет собой календарную дату без времени и часового пояса. LocalDateTime хранит информацию о дате и времени в локальной шкале времени. Он не содержит никакой информации о часовом поясе.

ЛокальнаяДатаВремя = ЛокальнаяДата + ЛокальноеВремя

1. Локальная дата -> Локальная дата и время

Чтобы преобразовать экземпляр LocalDate в экземпляр LocalDateTime, нам нужно добавить в него только часть времени. Для этого мы можем использовать любой из приведенных 5 методов класса LocalDate.

  • LocalDateTime вНачалоДня()
  • LocalDateTime atTime( местное время)
  • LocalDateTime atTime(целое число часов, целое число минут)
  • LocalDateTime atTime(целое число часов, целое число минут, целое число секунд)
  • LocalDateTime atTime(целое число часов, целое число минут, целое число секунд, целое число nanoOfSecond)

Метод atStartOfDay() возвращает LocalDateTime, сформированный из указанной даты в полночь, 00:00, в начале указанной даты.

Для всех остальных методов мы указываем конкретное время в аргументах метода.

  • час – используемый час дня, от 0 до 23
  • минута – используемая минута часа, от 0 до 59
  • секунда – секунда минуты, от 0 до 59
  • nanoOfSecond – наносекунда для представления, от 0 до 999 999 999

Программа Java для преобразования экземпляра LocalDate в экземпляр LocalDateTime.

 Локальная дата localDate = LocalDate.parse("2019-01-04");//Начало дняLocalDateTime localDateTime1 = localDate.atStartOfDay();System.out.println(localDateTime1);//Текущее времяLocalDateTime localDateTime2 = localDate.atTime(LocalTime.now());System.out.println(localDateTime2);//Конкретное времяLocalDateTime localDateTime3 = localDate.atTime(04, 30, 56);System.out.println(localDateTime3);

Вывод программы.

2019-01-04T00:002019-01-04T18:31:21.9362019-01-04T04:30:56

2. Локальная дата и время -> Локальная дата

Чтобы преобразовать LocalDateTime в экземпляр LocalDate, используйте метод toLocalDate(). Он возвращает LocalDate с тем же годом, месяцем и днем, что и в исходном объекте localdatetime.

 LocalDateTime localDateTime = LocalDateTime.now();LocalDate localDate = localDateTime.toLocalDate();System.out.println(localDate);

Вывод программы.

 2019-04-01 

Исходный код на Github

Прокрутить вверх