Ich vermute, dass ich nur erwartet habe, dass dies mir eine Parsing-Ausnahme gibt, aber das tat es nicht. Ich möchte, dass die Syntaxanalyse fehlschlägt, wenn das Datum ungültig ist. (Das muss ich wissen)ZonedDateTime: Ich möchte, dass parse() bei ungültigem Datum fehlschlägt
Anmerkung hinzugefügt: Am 30. Februar als ungültiges Datum verwendet: (In der Tat, was ich tun muss, ist fünf Strings erhalten; Jahr, Monat, Tag, Stunde, Minute, die ich Montag in str
(unten) und sehen, ob sie kommen zusammen als eine gültige Datum-Zeit (in ZONE_ID
).
String ZONE_NAME = "America/Los_Angeles";
ZoneId ZONE_ID = ZoneId.of(ZONE_NAME);
String ldtfPattern = "yyyy/MM/dd HH:mm";
DateTimeFormatter localDateTimeFormatter =
DateTimeFormatter.ofPattern(ldtfPattern);
String str = "2016/02/30 21:09";
try {
zdt = ZonedDateTime.parse(str, localDateTimeFormatter().withZone(ZONE_ID));
} catch(DateTimeParseException e) {
return null;
}
return zdt;
den String-Wert von zdt nach der oben Parst 2016-02-29T21:09-08:00[America/Los_Angeles]
Die 'str', die Sie dort haben, stimmt mit dem Format überein, sodass keine Ausnahme ausgelöst wird. Wenn Sie es zu etwas ändern, das nicht (wie "2016-02-30 21:09" '), Sie werden tatsächlich eine" DateTimeParseException "erhalten. – Mureinik
@Mureinik Ich wurde dafür downvoted? Es ist der 30. Februar, der ungültig ist, und ich möchte, dass das scheitert. Oder ich möchte das wissen. –
Oh, guter Punkt! Downvote entfernt, obwohl ich vorschlage, es in die Frage zu bearbeiten, um es zu beleuchten. – Mureinik