import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.OffsetDateTime;
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
public class Main {
public static void main
(String[] args
) { Instant instant = Instant.now();
ZonedDateTime zdtUtc = instant.atZone(ZoneId.of("Etc/UTC"));
ZonedDateTime zdtNewYork = instant.atZone(ZoneId.of("America/New_York"));
System.
out.
println(zdtNewYork
);
// Fixed offset
OffsetDateTime odtUtc = instant.atOffset(ZoneOffset.UTC);
OffsetDateTime odtWithOffset0530Hours = instant.atOffset(ZoneOffset.of("+05:30"));
System.
out.
println(odtWithOffset0530Hours
);
// OffsetDateTime from ZonedDateTime
OffsetDateTime odtNewYork = zdtNewYork.toOffsetDateTime();
System.
out.
println(odtNewYork
);
// LocalDate in New York
LocalDate todayNewYork = zdtNewYork.toLocalDate();
System.
out.
println(todayNewYork
); // Alternatively
System.
out.
println(LocalDate.
now(ZoneId.
of("America/New_York")));
// LocalDateTime in New York
LocalDateTime nowNewYork = zdtNewYork.toLocalDateTime();
System.
out.
println(nowNewYork
); // Alternatively
System.
out.
println(LocalDateTime.
now(ZoneId.
of("America/New_York")));
// Formatted output
DateTimeFormatter dtf
= DateTimeFormatter.
ofPattern("EEE MMMM dd HH:mm:ss z uuuu",
Locale.
ENGLISH); System.
out.
println(dtf.
format(zdtNewYork
)); }
}
aW1wb3J0IGphdmEudGltZS5JbnN0YW50OwppbXBvcnQgamF2YS50aW1lLkxvY2FsRGF0ZTsKaW1wb3J0IGphdmEudGltZS5Mb2NhbERhdGVUaW1lOwppbXBvcnQgamF2YS50aW1lLk9mZnNldERhdGVUaW1lOwppbXBvcnQgamF2YS50aW1lLlpvbmVJZDsKaW1wb3J0IGphdmEudGltZS5ab25lT2Zmc2V0OwppbXBvcnQgamF2YS50aW1lLlpvbmVkRGF0ZVRpbWU7CmltcG9ydCBqYXZhLnRpbWUuZm9ybWF0LkRhdGVUaW1lRm9ybWF0dGVyOwppbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKCnB1YmxpYyBjbGFzcyBNYWluIHsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKCQlJbnN0YW50IGluc3RhbnQgPSBJbnN0YW50Lm5vdygpOwoJCVN5c3RlbS5vdXQucHJpbnRsbihpbnN0YW50KTsKCgkJWm9uZWREYXRlVGltZSB6ZHRVdGMgPSBpbnN0YW50LmF0Wm9uZShab25lSWQub2YoIkV0Yy9VVEMiKSk7CgkJU3lzdGVtLm91dC5wcmludGxuKHpkdFV0Yyk7CgkJWm9uZWREYXRlVGltZSB6ZHROZXdZb3JrID0gaW5zdGFudC5hdFpvbmUoWm9uZUlkLm9mKCJBbWVyaWNhL05ld19Zb3JrIikpOwoJCVN5c3RlbS5vdXQucHJpbnRsbih6ZHROZXdZb3JrKTsKCgkJLy8gRml4ZWQgb2Zmc2V0CgkJT2Zmc2V0RGF0ZVRpbWUgb2R0VXRjID0gaW5zdGFudC5hdE9mZnNldChab25lT2Zmc2V0LlVUQyk7CgkJU3lzdGVtLm91dC5wcmludGxuKG9kdFV0Yyk7CgkJT2Zmc2V0RGF0ZVRpbWUgb2R0V2l0aE9mZnNldDA1MzBIb3VycyA9IGluc3RhbnQuYXRPZmZzZXQoWm9uZU9mZnNldC5vZigiKzA1OjMwIikpOwoJCVN5c3RlbS5vdXQucHJpbnRsbihvZHRXaXRoT2Zmc2V0MDUzMEhvdXJzKTsKCgkJLy8gT2Zmc2V0RGF0ZVRpbWUgZnJvbSBab25lZERhdGVUaW1lCgkJT2Zmc2V0RGF0ZVRpbWUgb2R0TmV3WW9yayA9IHpkdE5ld1lvcmsudG9PZmZzZXREYXRlVGltZSgpOwoJCVN5c3RlbS5vdXQucHJpbnRsbihvZHROZXdZb3JrKTsKCgkJLy8gTG9jYWxEYXRlIGluIE5ldyBZb3JrCgkJTG9jYWxEYXRlIHRvZGF5TmV3WW9yayA9IHpkdE5ld1lvcmsudG9Mb2NhbERhdGUoKTsKCQlTeXN0ZW0ub3V0LnByaW50bG4odG9kYXlOZXdZb3JrKTsKCQkvLyBBbHRlcm5hdGl2ZWx5CgkJU3lzdGVtLm91dC5wcmludGxuKExvY2FsRGF0ZS5ub3coWm9uZUlkLm9mKCJBbWVyaWNhL05ld19Zb3JrIikpKTsKCgkJLy8gTG9jYWxEYXRlVGltZSBpbiBOZXcgWW9yawoJCUxvY2FsRGF0ZVRpbWUgbm93TmV3WW9yayA9IHpkdE5ld1lvcmsudG9Mb2NhbERhdGVUaW1lKCk7CgkJU3lzdGVtLm91dC5wcmludGxuKG5vd05ld1lvcmspOwoJCS8vIEFsdGVybmF0aXZlbHkKCQlTeXN0ZW0ub3V0LnByaW50bG4oTG9jYWxEYXRlVGltZS5ub3coWm9uZUlkLm9mKCJBbWVyaWNhL05ld19Zb3JrIikpKTsKCgkJLy8gRm9ybWF0dGVkIG91dHB1dAoJCURhdGVUaW1lRm9ybWF0dGVyIGR0ZiA9IERhdGVUaW1lRm9ybWF0dGVyLm9mUGF0dGVybigiRUVFIE1NTU0gZGQgSEg6bW06c3MgeiB1dXV1IiwgTG9jYWxlLkVOR0xJU0gpOwoJCVN5c3RlbS5vdXQucHJpbnRsbihkdGYuZm9ybWF0KHpkdE5ld1lvcmspKTsKCX0KfQ==