/* package whatever; // don't place package name! */

import java.util.*;
import java.lang.*;
import java.io.*;

import java.time.*;
import java.time.format.*;

/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
	public static void main (String[] args) throws java.lang.Exception
	{

	ZoneId zoneParis = ZoneId.of( "Europe/Paris" );
    ZoneId zoneMontreal = ZoneId.of( "America/Montreal" );
    ZoneId zoneAuckland = ZoneId.of( "Pacific/Auckland" );

    OffsetDateTime odt = OffsetDateTime.parse( "2015-07-09T05:10:00+02:00" );
    Instant instant = odt.toInstant();  // `Instant` is always in UTC by definition.

    ZonedDateTime zdtParis = odt.atZoneSameInstant( zoneParis );
    ZonedDateTime zdtMontreal = odt.atZoneSameInstant( zoneMontreal );
    ZonedDateTime zdtAuckland = zdtMontreal.withZoneSameInstant( zoneAuckland );

    DateTimeFormatter f = DateTimeFormatter.ofLocalizedDateTime( FormatStyle.FULL ).withLocale( Locale.CANADA_FRENCH );
    String output = zdtMontreal.format( f );

    System.out.println( "odt.toString(): " + odt );
    System.out.println( "instant.toString(): " + instant );
    System.out.println( "zdtParis.toString(): " + zdtParis );
    System.out.println( "zdtMontreal.toString(): " + zdtMontreal );
    System.out.println( "zdtAuckland.toString(): " + zdtAuckland );
    System.out.println( "output: " + output );

	}
}