Saturday, August 30, 2025
HomeLanguagesJavaZonedDateTime withZoneSameLocal() method in Java with Examples

ZonedDateTime withZoneSameLocal() method in Java with Examples

The withZoneSameLocal() method of a ZonedDateTime class used to return a copy of this ZonedDateTime object by changing time-zone, without changing the local date-time if possible.The local date-time is only changed if it is invalid for the new zone, determined using the same approach as ofLocal(LocalDateTime, ZoneId, ZoneOffset).

Syntax:

public ZonedDateTime withZoneSameLocal(ZoneId zone)

Parameters: This method accepts one single parameter zone the time-zone to change to.It should not be null.

Return value: This method returns a ZonedDateTime based on this date-time with the requested zone.

Below programs illustrate the withZoneSameLocal() method:
Program 1:




// Java program to demonstrate
// ZonedDateTime.withZoneSameLocal() method
  
import java.time.*;
  
public class GFG {
    public static void main(String[] args)
    {
  
        // create a ZonedDateTime object
        ZonedDateTime zonedDT
            = ZonedDateTime
                  .parse(
                      "2018-12-06T19:21:12.123+05:30[Asia/Calcutta]");
  
        // print ZonedDateTime
        System.out.println("ZonedDateTime of Calcutta: "
                           + zonedDT);
  
        // apply withZoneSameLocal()
        ZonedDateTime zonedDT2
            = zonedDT.withZoneSameLocal(
                ZoneId.of("Pacific/Fiji"));
  
        // print ZonedDateTime after withZoneSameLocal()
        System.out.println("ZonedDateTime of Fuji: "
                           + zonedDT2);
    }
}


Output:

ZonedDateTime of Calcutta: 2018-12-06T19:21:12.123+05:30[Asia/Calcutta]
ZonedDateTime of Fuji: 2018-12-06T19:21:12.123+13:00[Pacific/Fiji]

Program 2:




// Java program to demonstrate
// ZonedDateTime.withZoneSameLocal() method
  
import java.time.*;
  
public class GFG {
    public static void main(String[] args)
    {
  
        // create a ZonedDateTime object
        ZonedDateTime zonedDT
            = ZonedDateTime
                  .parse(
                      "2018-10-25T23:12:31.123+02:00[Europe/Paris]");
  
        // print ZonedDateTime
        System.out.println("ZonedDateTime of Calcutta: "
                           + zonedDT);
  
        // apply withZoneSameLocal()
        ZonedDateTime zonedDT2
            = zonedDT
                  .withZoneSameLocal(
                      ZoneId.of("Canada/Yukon"));
  
        // print ZonedDateTime after withZoneSameLocal()
        System.out.println("ZonedDateTime of yukon: "
                           + zonedDT2);
    }
}


Output:

ZonedDateTime of Calcutta: 2018-10-25T23:12:31.123+02:00[Europe/Paris]
ZonedDateTime of yukon: 2018-10-25T23:12:31.123-07:00[Canada/Yukon]

Reference: https://docs.oracle.com/javase/10/docs/api/java/time/ZonedDateTime.html#withZoneSameLocal(java.time.ZoneId)

RELATED ARTICLES

Most Popular

Dominic
32249 POSTS0 COMMENTS
Milvus
81 POSTS0 COMMENTS
Nango Kala
6617 POSTS0 COMMENTS
Nicole Veronica
11792 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11838 POSTS0 COMMENTS
Shaida Kate Naidoo
6731 POSTS0 COMMENTS
Ted Musemwa
7013 POSTS0 COMMENTS
Thapelo Manthata
6689 POSTS0 COMMENTS
Umr Jansen
6701 POSTS0 COMMENTS