Learn to convert from LocalDate to LocalDateTime and from LocalDateTime to LocalDate in Java 8.
To restate, LocalDate represents a calendar date without time and timezone. LocalDateTime stores the date and time information in the local timeline. It does not have any timezone information.
LocalDateTime = LocalDate + LocalTime
1. LocalDate -> LocalDateTime
To convert a LocalDate
instance to LocalDateTime
instance, we need to add only the time part in it. For this, we can use either of the given 5 methods of LocalDate
class.
LocalDateTime atStartOfDay()
LocalDateTime atTime(LocalTime time)
LocalDateTime atTime(int hour, int minutes)
LocalDateTime atTime(int hour, int minutes, int seconds)
LocalDateTime atTime(int hour, int minute, int second, int nanoOfSecond)
The method atStartOfDay()
returns a LocalDateTime
formed from the given date at the time of midnight, 00:00, at the start of the given date.
For all other methods, we provide the specific time in method arguments.
- hour – the hour-of-day to use, from 0 to 23
- minute – the minute-of-hour to use, from 0 to 59
- second – the second-of-minute to represent, from 0 to 59
- nanoOfSecond – the nano-of-second to represent, from 0 to 999,999,999
Java program to convert a LocalDate instance to LocalDateTime instance.
LocalDate localDate = LocalDate.parse("2019-01-04");
//Beginning of the day
LocalDateTime localDateTime1 = localDate.atStartOfDay();
System.out.println(localDateTime1);
//Current time
LocalDateTime localDateTime2 = localDate.atTime(LocalTime.now());
System.out.println(localDateTime2);
//Specific time
LocalDateTime localDateTime3 = localDate.atTime(04, 30, 56);
System.out.println(localDateTime3);
Program output.
2019-01-04T00:00
2019-01-04T18:31:21.936
2019-01-04T04:30:56
2. LocalDateTime -> LocalDate
To convert LocalDateTime to LocalDate instance, use toLocalDate()
method. It returns a LocalDate
with the same year, month and day as in the original localdatetime object.
LocalDateTime localDateTime = LocalDateTime.now(); LocalDate localDate = localDateTime.toLocalDate(); System.out.println(localDate);
Program output.
2019-04-01
Happy Learning !!