Java DateTimeFormatter für Zeit-zone, mit einem optionalen Doppelpunkt als Trennzeichen?
Ich versuche zu bauen, ein DateTimeFormatter-können akzeptiert offset mit Doppelpunkt oder offset ohne Doppelpunkt.
Gibt es eine Möglichkeit diesen test zu bestehen :
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss[X]");
dateTimeFormatter.parse("2015-01-28T10:21:44+0100"); //OK
dateTimeFormatter.parse("2015-01-28T10:21:44+01:00"); //KO
- Der Doppelpunkt ist für Sie optional ist fester Bestandteil der zone offset Teil. Sie können nur wählen zwischen Muster Buchstaben X (ohne Doppelpunkt) oder XXX (mit Doppelpunkt). Das bedeutet, dass die gesamte zone offset ist optional, nicht nur den Dickdarm von innen.
- Ich Stimme zu, es sollte funktionieren. Aber wenn ich mit [X] es erwartet Sie eine offset-ohne Doppelpunkt und wenn ich [XXX] es erwartet Sie ein offset mit einem Doppelpunkt. Ich kann nicht mit beiden zusammen.
- Nach der Javadoc: mit X-symbol Thesen Beispiele gegeben werden : Z; -08; -0830; -08:30; -083015; -08:30:15;
- Bitte Lesen Sie die javadoc-Abschnitt "Offset X " und x". Es umschreibt präzise die Anzahl der Buchstaben X,x zugeordnet ist, dem format der Repräsentation. Wir haben also: XX (ohne Doppelpunkt) und XXX (mit Doppelpunkt). X (ohne Doppelpunkt) lässt den winzigen Teil optional.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese:
yyyy-MM-dd'T'HH:mm:ss[XXX][X]
scheint zu funktionieren.Hier ist die ultimative pattern-matching für ziemlich alles sah aus wie ein ISO string date !
Funktioniert es für die folgende Liste von tests, die außer für die beiden in den Kommentaren, aber ich weiß immer noch nicht, warum...
Und die parse-Methode selbst :
XXXX
oderVV
, und so weiter.