2016-08-03 7 views
0

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]

+1

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

+0

@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. –

+1

Oh, guter Punkt! Downvote entfernt, obwohl ich vorschlage, es in die Frage zu bearbeiten, um es zu beleuchten. – Mureinik

Antwort

2

ein kleiner piepmatz ist gesagt Ich versuche mit withResolverStyle() auf STRICT gesetzt, damit das einzige andere Tric k Ich musste diese Arbeit machen, um die era into my year zu integrieren. So werden die Änderungen an der oben sind:

String ldtfPattern = "uuuu/MM/dd HH:mm"; 

und

zdt = ZonedDateTime.parse(str, 
       getLocalDateTimeFormatter().withZone(ZONE_ID).withResolverStyle(ResolverStyle.STRICT)); 

Und das für mich arbeitet.

Verwandte Themen