How to Convert Date to LocalDateTime in Java 8
To convert Date to LocalDatetime, we can use following approaches :
- Obtain a ZonedDateTime from the date and use its method toLocalDateTime() to get the LocalDateTime
- Use LocalDateTime’s ofInstant() factory method
Option 1 : Convert Date to LocalDateTime
Here is the sample code to convert LocalDateTime to Date in Java 8:
Instant instant = date.toInstant();
LocalDateTime localDateTime = instant.atZone(zoneId).toLocalDateTime();
Example : Convert Date to LocalDateTime
package com.topjavatutorial.java8examples; import java.time.Instant; import java.time.LocalDateTime; import java.time.ZoneId; import java.util.Date; public class LocalDateUtil { public static void main(String[] args) { Date date = new Date(); Instant instant = date.toInstant(); ZoneId zoneId = ZoneId.systemDefault(); LocalDateTime localDateTime = instant.atZone(zoneId).toLocalDateTime(); System.out.println("Date = " + date); System.out.println("LocalDateTime = " + localDateTime); } }
Output :
Date = Fri Dec 23 01:13:12 EST 2016
LocalDateTime = 2016-12-23T01:13:12.308
Option 2 : Convert Date to LocalDateTime
We can also use LocalDateTime’s factory method ofInstant() by using System’s default timezone.
Here is how you can convert java.util.Date to java.time.LocalDateTime in Java 8 :
LocalDateTime localDateTime = LocalDateTime.ofInstant(date.toInstant(), zoneId);
How to Convert LocalDateTime to Date in Java 8
To convert the LocalDateTime back to java.util.Date, we can use the following steps :
1) Convert the LocalDateTime to a ZonedDateTime using atZone() method
2) Convert the ZonedDateTime to an Instant and obtain the Date from it
Here is the code to convert LocalDateTime to Date in Java 8:
ZonedDateTime zdt = localDateTime.atZone(zoneId);
Date output = Date.from(zdt.toInstant())
Example : Convert LocalDateTime to Date
package com.topjavatutorial.java8examples; import java.time.LocalDateTime; import java.time.ZoneId; import java.time.ZonedDateTime; import java.util.Date; public class LocalDateUtil { public static void main(String[] args) { ZoneId zoneId = ZoneId.systemDefault(); LocalDateTime localDateTime = LocalDateTime.now(); ZonedDateTime zdt = localDateTime.atZone(zoneId); Date date = Date.from(zdt.toInstant()); System.out.println("LocalDateTime = " + localDateTime); System.out.println("Date = " + date); } }
Output :
LocalDateTime = 2016-12-23T03:14:53.327
Date = Fri Dec 23 03:14:53 EST 2016
© 2016, https:. All rights reserved. On republishing this post, you must provide link to original post