Java 8 – How to extract LocalDate and LocalTime and LocalDateTime from ZonedDateTime ?

In this article, we will learn how to extract/get LocalDate & LocalTime & LocalDateTime from ZonedDateTime using toLocalDate() & toLocalTime() & toLocalDateTime() methods respectively provided in Java 1.8 version

For LocalDate/LocalTime/LocalDateTime to ZonedDateTime conversion, read

Get LocalDate, LocalTime & LocalDateTime from ZonedDateTime :

  • ZonedDateTime has below methods
    • toLocalDate() – gets the LocalDate part from the invoking ZonedDateTime
    • toLocalTime() – gets the LocalTime part from the invoking ZonedDateTime
    • toLocalDateTime() – gets the LocalDateTime part from the invoking ZonedDateTime
  • Lets see an example for getting LocalDate & LocalTime & LocalDateTime from ZonedDateTime in the below illustration

GetLocalDateAndLocalTimeFromZonedDateTime.java

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

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.ZonedDateTime;

public class GetLocalDateAndLocalTimeFromZonedDateTime {

	public static void main(String[] args) {

		// 1. get Zoned Date/time
		ZonedDateTime zonedDateTime = ZonedDateTime.now();
		System.out.println("Zoned Date/time is :- \n" 
				+ zonedDateTime);


		// 2. get Zone
		System.out.println("\nZone is :- \n" 
				+ zonedDateTime.getZone());


		// 3. convert ZonedDateTime to LocalDate using toLocalDate()
		LocalDate localDate = zonedDateTime.toLocalDate();
		System.out.println("\nConversion of ZonedDateTime to LocalDate is :- \n"
				+ localDate);


		// 4. convert ZonedDateTime to LocalTime using toLocalTime()
		LocalTime localTime = zonedDateTime.toLocalTime();
		System.out.println("\nConversion of ZonedDateTime to LocalTime is :- \n"
				+ localTime);


		// 5. convert ZonedDateTime to LocalDateTime using toLocalDateTime()
		LocalDateTime localDateTime = zonedDateTime.toLocalDateTime();
		System.out.print("\nConversion of ZonedDateTime to LocalDateTime is :- \n"
				+ localDateTime);
	}
}

Output:

Zoned Date/time is :- 
2022-08-13T15:35:24.309207800+05:30[Asia/Calcutta]

Zone is :- 
Asia/Calcutta

Conversion of ZonedDateTime to LocalDate is :- 
2022-08-13

Conversion of ZonedDateTime to LocalTime is :- 
15:35:24.309207800

Conversion of ZonedDateTime to LocalDateTime is :- 
2022-08-13T15:35:24.309207800

Related Articles:

References:

Happy Coding !!
Happy Learning !!

Java 8 – How to convert ZonedDateTime to java.util.Date and vice-versa ?
Java 8 – How to convert ZonedDateTime to an Instant ?