1. Overview
In this tutorial, We'll learn how to convert the LocalDate to ZonedDateTime in java 8.
LocalDate is having only date units without timezone and ZonedDateTime object contains date, time units with timezone information. But, when we want to convert LocalDate to ZonedDateTime, we have to supply the remaining time units and timezone values and add to the LocalDate object.
This is solved using a simple method atStartOfDay() from LocalDate class with ZoneId information as an argument.
Let us explore how to convert String to ZonedDateTime and LocalDate to ZonedDateTime object.
2. Java 8 Convert String to ZonedDateTime Object
In the below example, we are taking the string as input date in format "yyyy-MM-dd" and pass to the LocalDate.parse() method and then covert it to the ZonedDateTime object.
package com.javaprogramto.java8.dates.localdate; import java.time.LocalDate; import java.time.ZoneId; import java.time.ZonedDateTime; /** * Example to convert String to ZonedDateTime. * * @author JavaProgramTo.com * */ public class StringToZonedDateTimeExample { public static void main(String[] args) { // date in string format String date = "2022-03-02"; // Converting String to LocalDate. LocalDate localDate = LocalDate.parse(date); // Creating timezone ZoneId zoneid = ZoneId.systemDefault(); // LocalDate to zoneddatetime ZonedDateTime zonedDateTimeFromString = localDate.atStartOfDay(zoneid); System.out.println("String date : " + date); System.out.println("ZonedDateTime : " + zonedDateTimeFromString); } }
Output:
String date : 2022-03-02 ZonedDateTime : 2022-03-02T00:00+05:30[Asia/Kolkata]
3. Java 8 Convert LocalDate to ZonedDateTime Object
Next, convert the LocalDate object into ZonedDateObject with PST America timezone.
Use atStartOfDay() method with PST timezone is passed using ZoneId.of() method.
package com.javaprogramto.java8.dates.localdate; import java.time.LocalDate; import java.time.ZoneId; import java.time.ZonedDateTime; /** * Example to convert LocalDate to ZonedDateTime with PST zone. * * @author JavaProgramTo.com * */ public class LocalDateToZonedDateTimePSTExample { public static void main(String[] args) { // Creating LocalDate object LocalDate localDate = LocalDate.now(); // Creating timezone with PST zone id. We can pass here any timezone id supported by java. ZoneId zoneid = ZoneId.of("US/Pacific"); // LocalDate to PST zoneddatetime ZonedDateTime zonedDateTimeInPST = localDate.atStartOfDay(zoneid); System.out.println("localDate : " + localDate); System.out.println("ZonedDateTime in PST : " + zonedDateTimeInPST); } }
Output:
localDate : 2020-12-07 ZonedDateTime in PST : 2020-12-07T00:00-08:00[US/Pacific]
4. Conclusion
In this article, We've seen the examples on how to convert LocalDate to ZonedDateTime in java 8 api.
No comments:
Post a Comment
Please do not add any spam links in the comments section.