Java Tutorials
ZonedDateTime represents LocalDate+LocalTime+ZoneId
LocalDateTime ldt = LocalDateTime.now()
ZonedDateTime zdt = ldt.atZone(ZoneId.of("America/New_York"))
Creating a ZonedDateTime object using Instant object using Instant's atZone method
Instant ins = Instant.now()
ZonedDateTime zdt = ins.atZone(ZoneId.of("America/New_York"))
ZonedDateTime zdtInd = ZonedDateTime.now(ZoneId.of("Asia/Kolkata"))
ZonedDateTime zdtParis = ZonedDateTime.now(ZoneId.of("Europe/Paris"))
ZonedDateTime zdtUS = ZonedDateTime.now(ZoneId.of("America/New_York"))
India Time-zone comes with +5:30 where as Paris Time-Zone falls under +1:00 offset,
so time difference is 4hrs and 30minuts
Programatically calculating Time difference
Find Time Difference between India and Paris City
Duration d = Duration.between(zdtInd.toLocalDateTime(),zdtParis.toLocalDateTime())
System.out.println(d);
PT-4H-29M-52.388065S
so Paris is 4hours and 30minutes behind Indian Standard Time.
Note: Due to Day Light Saving settings, in Summer Paris uses
time offset +2:00 instead of +1:00, so this value(time difference) will change in summer months
India falls under same time zone, i.e +5:30, New York city time offset is -5:00
Find Time Difference between India and New York City
Duration d = Duration.between(zdtInd.toLocalDateTime(),zdtUS.toLocalDateTime())
System.out.println(d);
PT-10H-30M-32.727672S
New York city 10hours 30 minutes behind Indian Standard Time
Note: Due to Day Light Saving settings, in Summer New York uses
time offset -4:00 instead of -5:00, so this value(time difference) will change in summer months
ADS