import java.time.*;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
public class Main {
private static final DateTimeFormatter FORMATTER =
DateTimeFormatter.
ofPattern("dd/MM/uuuu",
Locale.
ENGLISH);
public static void main
(String[] args
) { // Test
ZonedDateTime zdt = convertTimeZone("23/04/2013", "23:00",
ZoneId.of("America/New_York"), // source time zone
ZoneId.of("Europe/London")); // target time zone
// In custom format
System.
out.
println(zdt.
format(FORMATTER
) + " " + zdt.
toLocalTime()); }
private static ZonedDateTime convertTimeZone
(String strDate,
String strTime, ZoneId sourceTz, ZoneId targetTz
) {
LocalDate date = LocalDate.parse(strDate, FORMATTER);
LocalTime time = LocalTime.parse(strTime);
ZonedDateTime zdt = ZonedDateTime.of(date, time, sourceTz);
return zdt.withZoneSameInstant(targetTz);
}
}
aW1wb3J0IGphdmEudGltZS4qOwppbXBvcnQgamF2YS50aW1lLmZvcm1hdC5EYXRlVGltZUZvcm1hdHRlcjsKaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CgpwdWJsaWMgY2xhc3MgTWFpbiB7CiAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBEYXRlVGltZUZvcm1hdHRlciBGT1JNQVRURVIgPQogICAgICAgICAgICBEYXRlVGltZUZvcm1hdHRlci5vZlBhdHRlcm4oImRkL01NL3V1dXUiLCBMb2NhbGUuRU5HTElTSCk7CgogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgICAgIC8vIFRlc3QKICAgICAgICBab25lZERhdGVUaW1lIHpkdCA9IGNvbnZlcnRUaW1lWm9uZSgiMjMvMDQvMjAxMyIsICIyMzowMCIsCiAgICAgICAgICAgICAgICBab25lSWQub2YoIkFtZXJpY2EvTmV3X1lvcmsiKSwgLy8gc291cmNlIHRpbWUgem9uZQogICAgICAgICAgICAgICAgWm9uZUlkLm9mKCJFdXJvcGUvTG9uZG9uIikpOyAvLyB0YXJnZXQgdGltZSB6b25lCiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHpkdCk7CgogICAgICAgIC8vIEluIGN1c3RvbSBmb3JtYXQKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oemR0LmZvcm1hdChGT1JNQVRURVIpICsgIiAiICsgemR0LnRvTG9jYWxUaW1lKCkpOwogICAgfQoKICAgIHByaXZhdGUgc3RhdGljIFpvbmVkRGF0ZVRpbWUgY29udmVydFRpbWVab25lKFN0cmluZyBzdHJEYXRlLCBTdHJpbmcgc3RyVGltZSwgWm9uZUlkIHNvdXJjZVR6LCBab25lSWQgdGFyZ2V0VHopIHsKCiAgICAgICAgTG9jYWxEYXRlIGRhdGUgPSBMb2NhbERhdGUucGFyc2Uoc3RyRGF0ZSwgRk9STUFUVEVSKTsKICAgICAgICBMb2NhbFRpbWUgdGltZSA9IExvY2FsVGltZS5wYXJzZShzdHJUaW1lKTsKICAgICAgICBab25lZERhdGVUaW1lIHpkdCA9IFpvbmVkRGF0ZVRpbWUub2YoZGF0ZSwgdGltZSwgc291cmNlVHopOwogICAgICAgIHJldHVybiB6ZHQud2l0aFpvbmVTYW1lSW5zdGFudCh0YXJnZXRUeik7CiAgICB9Cn0=