import java.time.LocalDate;
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
import java.util.Locale;
import java.util.stream.Stream;
public class Main {
public static void main
(String[] args
) { DateTimeFormatter dtf = new DateTimeFormatterBuilder()
.parseCaseInsensitive() //To parse in case-insensitive way e.g. AM, am
.appendPattern("h:m[ ]a") // Notice single h and m and optional space in bracket
ZoneId tz = ZoneId.of("America/Los_Angeles");
//Test
Stream.of(
"08:20 am",
"08:20 pm",
"08:20 AM",
"08:20 PM",
"8:20 am",
"08:5 pm",
"08:5pm",
"8:5am"
).
forEach(s
-> System.
out.
println(ZonedDateTime.
of(LocalDate.
now(tz
), LocalTime.
parse(s, dtf
), tz
))); }
}
aW1wb3J0IGphdmEudGltZS5Mb2NhbERhdGU7CmltcG9ydCBqYXZhLnRpbWUuTG9jYWxUaW1lOwppbXBvcnQgamF2YS50aW1lLlpvbmVJZDsKaW1wb3J0IGphdmEudGltZS5ab25lZERhdGVUaW1lOwppbXBvcnQgamF2YS50aW1lLmZvcm1hdC5EYXRlVGltZUZvcm1hdHRlcjsKaW1wb3J0IGphdmEudGltZS5mb3JtYXQuRGF0ZVRpbWVGb3JtYXR0ZXJCdWlsZGVyOwppbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKaW1wb3J0IGphdmEudXRpbC5zdHJlYW0uU3RyZWFtOwoKcHVibGljIGNsYXNzIE1haW4gewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewoJCURhdGVUaW1lRm9ybWF0dGVyIGR0ZiA9IG5ldyBEYXRlVGltZUZvcm1hdHRlckJ1aWxkZXIoKQogICAgICAgIAkJLnBhcnNlQ2FzZUluc2Vuc2l0aXZlKCkgCS8vVG8gcGFyc2UgaW4gY2FzZS1pbnNlbnNpdGl2ZSB3YXkgZS5nLiBBTSwgYW0KICAgICAgICAJCS5hcHBlbmRQYXR0ZXJuKCJoOm1bIF1hIikgCS8vIE5vdGljZSBzaW5nbGUgaCBhbmQgbSBhbmQgb3B0aW9uYWwgc3BhY2UgaW4gYnJhY2tldAogICAgICAgIAkJLnRvRm9ybWF0dGVyKExvY2FsZS5FTkdMSVNIKTsKCQkKCQlab25lSWQgdHogPSBab25lSWQub2YoIkFtZXJpY2EvTG9zX0FuZ2VsZXMiKTsKICAgICAgICAKICAgICAgICAvL1Rlc3QKICAgICAgICBTdHJlYW0ub2YoCiAgICAgICAgCQkJIjA4OjIwIGFtIiwKICAgICAgICAJCQkiMDg6MjAgcG0iLAogICAgICAgIAkJCSIwODoyMCBBTSIsCiAgICAgICAgCQkJIjA4OjIwIFBNIiwKICAgICAgICAJCQkiODoyMCBhbSIsCiAgICAgICAgCQkJIjA4OjUgcG0iLAogICAgICAgIAkJCSIwODo1cG0iLAogICAgICAgIAkJCSI4OjVhbSIKICAgICAgICApLmZvckVhY2gocyAtPiBTeXN0ZW0ub3V0LnByaW50bG4oWm9uZWREYXRlVGltZS5vZihMb2NhbERhdGUubm93KHR6KSwgTG9jYWxUaW1lLnBhcnNlKHMsIGR0ZiksIHR6KSkpOwoJfQp9