How to Convert Date to LocalDateTime and Vice versa

convert date to localdatetime

How to Convert Date to LocalDateTime in Java 8

To convert Date to LocalDatetime, we can use following approaches :

  1. Obtain a ZonedDateTime from the date and use its method toLocalDateTime() to get the LocalDateTime
  2. 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

Leave a Reply.. code can be added in <code> </code> tags