Java 8 – How to convert java.util.Date to LocalDateTime in different ways ?

In this article, we will learn how to convert java.util.Date to LocalDateTime in different ways

java.util.Date to LocalDateTime conversion :

There are many ways to convert java.util.Date to LocalDateTime –

  1. Using java.sql.Date and toLocalDateTime() method
  2. Using Timestamp and toLocalDateTime() method
  3. Using LocalDateTime.parse() method
  4. Using GregorianCalendar and ZonedDateTime
  5. Using Instant and ZonedDateTime
  6. Using Instant.ofEpochMilli() method and ZonedDateTime

DifferentWaysToConvertJavaUtilDateToLocalDateTime.java

package in.bench.resources.java8.localdatetime.examples;

import java.sql.Timestamp;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

public class DifferentWaysToConvertJavaUtilDateToLocalDateTime {

	public static void main(String[] args) {

		// get current date
		Date date = new Date();
		System.out.println("Current Date is = " + date);


		// print to console
		System.out.println("\njava.util.Date to java.time.LocalDateTime conversion :-");
		System.out.println("-----------------------------------------------------");


		// 1. Using java.sql.Date & Timestamp & toLocalDateTime() method
		java.sql.Date sqlDate = new java.sql.Date(new java.util.Date().getTime());
		Timestamp timestamp1 = new java.sql.Timestamp(sqlDate.getTime());
		LocalDateTime localDateTime1 = timestamp1.toLocalDateTime();
		System.out.println("1. Using java.sql.Date & toLocalDateTime() method :- \n" 
				+ localDateTime1);


		// 2. Using Timestamp & toLocalDateTime() method
		Date date2 = new Date();
		Timestamp timestamp2 = new Timestamp(date2.getTime());
		LocalDateTime localDateTime2 = timestamp2.toLocalDateTime();
		System.out.println("\n2. Using Timestamp & toLocalDateTime() method :- \n" 
				+ localDateTime2);


		// 3. Using LocalDateTime.parse() method
		Date date3 = new Date();
		LocalDateTime localDateTime3 = LocalDateTime.parse(
				date3.toString(),
				DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss zzz yyyy")
				);
		System.out.println("\n3. Using LocalDateTime.parse() method :- \n" 
				+ localDateTime3);


		// 4. Using GregorianCalendar and ZonedDateTime
		Date date4 = new Date();
		GregorianCalendar gregorianCalendar = (GregorianCalendar) Calendar.getInstance();
		gregorianCalendar.setTime(date4);
		ZonedDateTime zonedDateTime = gregorianCalendar.toZonedDateTime();
		LocalDateTime localDateTime4 = zonedDateTime.toLocalDateTime();
		System.out.println("\n4. Using GregorianCalendar and ZonedDateTime :- \n" 
				+ localDateTime4);


		// 5. Using Instant & ZonedDateTime
		Date date5 = new Date();
		Instant instant1 = date5.toInstant();
		ZonedDateTime zonedDateTime5 = instant1.atZone(ZoneId.systemDefault());
		LocalDateTime localDateTime5 = zonedDateTime5.toLocalDateTime();
		System.out.println("\n5. Using Instant & ZonedDateTime :- \n"
				+ localDateTime5);


		// 6. Using Instant & ZonedDateTime
		Date date6 = new Date();
		Instant instant2 = Instant.ofEpochMilli(date6.getTime());
		ZonedDateTime zonedDateTime6 = instant2.atZone(ZoneId.systemDefault());
		LocalDateTime localDateTime6 = zonedDateTime6.toLocalDateTime();
		System.out.print("\n6. Using Instant.ofEpochMilli() method & ZonedDateTime :- \n"
				+ localDateTime6);
	}
}

Output:

Current Date is = Tue Aug 09 19:58:49 IST 2022

java.util.Date to java.time.LocalDateTime conversion :-
-----------------------------------------------------
1. Using java.sql.Date & toLocalDateTime() method :- 
2022-08-09T19:58:49.142

2. Using Timestamp & toLocalDateTime() method :- 
2022-08-09T19:58:49.146

3. Using LocalDateTime.parse() method :- 
2022-08-09T19:58:49

4. Using GregorianCalendar and ZonedDateTime :- 
2022-08-09T19:58:49.292

5. Using Instant & ZonedDateTime :- 
2022-08-09T19:58:49.307

6. Using Instant.ofEpochMilli() method & ZonedDateTime :- 
2022-08-09T19:58:49.308

Related Articles:



References:



Happy Coding !!
Happy Learning !!

Java 8 – How to add Date and Time fields to LocalDateTime ?
Java 8 – How to convert LocalDateTime to XMLGregorianCalendar and vice-versa ?