ZonedDateTime withZoneSameInstant() method in Java with Examples

The withZoneSameInstant() method of a ZonedDateTime class used to return a copy of this ZonedDateTime object by changing the time-zone and without the instant.This method is based on retaining the same instant, thus gaps and overlaps in the local time-line have no effect on the result.

Syntax:

public ZonedDateTime withZoneSameInstant(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.

Exception: This method throws DateTimeException: if the result exceeds the supported date range.



Below programs illustrate the withZoneSameInstant() method:

Program 1:

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to demonstrate
// ZonedDateTime.withZoneSameInstant() 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 withZoneSameInstant()
        ZonedDateTime zonedDT2
            = zonedDT
                  .withZoneSameInstant(
                      ZoneId.of("Pacific/Fiji"));
  
        // print ZonedDateTime after withZoneSameInstant()
        System.out.println("ZonedDateTime of Fuji: "
                           + zonedDT2);
    }
}

chevron_right


Output:

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

Program 2:

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to demonstrate
// ZonedDateTime.withZoneSameInstant() 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 withZoneSameInstant()
        ZonedDateTime zonedDT2
            = zonedDT
                  .withZoneSameInstant(
                      ZoneId.of("Canada/Yukon"));
  
        // print ZonedDateTime after withZoneSameInstant()
        System.out.println("ZonedDateTime of yukon: "
                           + zonedDT2);
    }
}

chevron_right


Output:

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

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



My Personal Notes arrow_drop_up

I am a Developer I love to code and bring my ideas alive

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.