Научитесь преобразовывать 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