import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.OffsetDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.temporal.ChronoUnit;
public class Main {
public static void main
(String[] args
) { ZoneId zoneIdLosAngeles = ZoneId.of("America/Los_Angeles");
ZonedDateTime zdtNowLosAngeles = ZonedDateTime.now(zoneIdLosAngeles);
System.
out.
println(zdtNowLosAngeles
);
// With zone offset but without time zone name
OffsetDateTime odtNowLosAngeles = zdtNowLosAngeles.toOffsetDateTime();
System.
out.
println(odtNowLosAngeles
);
// Truncated up to seconds
odtNowLosAngeles = odtNowLosAngeles.truncatedTo(ChronoUnit.SECONDS);
System.
out.
println(odtNowLosAngeles
);
// ################ A winter date-time ################
ZonedDateTime zdtLosAngelesWinter = ZonedDateTime
.of(LocalDateTime.of(LocalDate.of(2021, 11, 20), LocalTime.of(10, 20)), zoneIdLosAngeles);
System.
out.
println(zdtLosAngelesWinter
); // 2021-11-20T10:20-08:00[America/Los_Angeles] System.
out.
println(zdtLosAngelesWinter.
toOffsetDateTime()); // 2021-11-20T10:20-08:00
// ################ Parsing a date-time string with zone offset ################
String strDateTime
= "2008-11-13T13:23:30-08:00"; OffsetDateTime odt = OffsetDateTime.parse(strDateTime);
System.
out.
println(odt
); // 2008-11-13T13:23:30-08:00 }
}
aW1wb3J0IGphdmEudGltZS5Mb2NhbERhdGU7CmltcG9ydCBqYXZhLnRpbWUuTG9jYWxEYXRlVGltZTsKaW1wb3J0IGphdmEudGltZS5Mb2NhbFRpbWU7CmltcG9ydCBqYXZhLnRpbWUuT2Zmc2V0RGF0ZVRpbWU7CmltcG9ydCBqYXZhLnRpbWUuWm9uZUlkOwppbXBvcnQgamF2YS50aW1lLlpvbmVkRGF0ZVRpbWU7CmltcG9ydCBqYXZhLnRpbWUudGVtcG9yYWwuQ2hyb25vVW5pdDsKCnB1YmxpYyBjbGFzcyBNYWluIHsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKCQlab25lSWQgem9uZUlkTG9zQW5nZWxlcyA9IFpvbmVJZC5vZigiQW1lcmljYS9Mb3NfQW5nZWxlcyIpOwoJCVpvbmVkRGF0ZVRpbWUgemR0Tm93TG9zQW5nZWxlcyA9IFpvbmVkRGF0ZVRpbWUubm93KHpvbmVJZExvc0FuZ2VsZXMpOwoJCVN5c3RlbS5vdXQucHJpbnRsbih6ZHROb3dMb3NBbmdlbGVzKTsKCgkJLy8gV2l0aCB6b25lIG9mZnNldCBidXQgd2l0aG91dCB0aW1lIHpvbmUgbmFtZQoJCU9mZnNldERhdGVUaW1lIG9kdE5vd0xvc0FuZ2VsZXMgPSB6ZHROb3dMb3NBbmdlbGVzLnRvT2Zmc2V0RGF0ZVRpbWUoKTsKCQlTeXN0ZW0ub3V0LnByaW50bG4ob2R0Tm93TG9zQW5nZWxlcyk7CgoJCS8vIFRydW5jYXRlZCB1cCB0byBzZWNvbmRzCgkJb2R0Tm93TG9zQW5nZWxlcyA9IG9kdE5vd0xvc0FuZ2VsZXMudHJ1bmNhdGVkVG8oQ2hyb25vVW5pdC5TRUNPTkRTKTsKCQlTeXN0ZW0ub3V0LnByaW50bG4ob2R0Tm93TG9zQW5nZWxlcyk7CgoJCS8vICMjIyMjIyMjIyMjIyMjIyMgQSB3aW50ZXIgZGF0ZS10aW1lICMjIyMjIyMjIyMjIyMjIyMKCQlab25lZERhdGVUaW1lIHpkdExvc0FuZ2VsZXNXaW50ZXIgPSBab25lZERhdGVUaW1lCgkJCQkub2YoTG9jYWxEYXRlVGltZS5vZihMb2NhbERhdGUub2YoMjAyMSwgMTEsIDIwKSwgTG9jYWxUaW1lLm9mKDEwLCAyMCkpLCB6b25lSWRMb3NBbmdlbGVzKTsKCQlTeXN0ZW0ub3V0LnByaW50bG4oemR0TG9zQW5nZWxlc1dpbnRlcik7IC8vIDIwMjEtMTEtMjBUMTA6MjAtMDg6MDBbQW1lcmljYS9Mb3NfQW5nZWxlc10KCQlTeXN0ZW0ub3V0LnByaW50bG4oemR0TG9zQW5nZWxlc1dpbnRlci50b09mZnNldERhdGVUaW1lKCkpOyAvLyAyMDIxLTExLTIwVDEwOjIwLTA4OjAwCgoJCS8vICMjIyMjIyMjIyMjIyMjIyMgUGFyc2luZyBhIGRhdGUtdGltZSBzdHJpbmcgd2l0aCB6b25lIG9mZnNldCAjIyMjIyMjIyMjIyMjIyMjCgkJU3RyaW5nIHN0ckRhdGVUaW1lID0gIjIwMDgtMTEtMTNUMTM6MjM6MzAtMDg6MDAiOwoJCU9mZnNldERhdGVUaW1lIG9kdCA9IE9mZnNldERhdGVUaW1lLnBhcnNlKHN0ckRhdGVUaW1lKTsKCQlTeXN0ZW0ub3V0LnByaW50bG4ob2R0KTsgLy8gMjAwOC0xMS0xM1QxMzoyMzozMC0wODowMAoJfQp9