Verwenden von alphabetischen Zeichen in SimpleDateFormat Pattern String

79

Ist es möglich, ein alphabetisches Zeichen in eine SimpleDateFormat-Musterzeichenfolge aufzunehmen?

Ich versuche, eine Formatzeichenfolge zu erstellen, in der der Buchstabe 'T' vor der Zeit enthalten ist, zum Beispiel:

2003-11-15 T 09: 30: 47-05: 00.

Ich verwende derzeit yyyy-MM-ddhh:mm:ssZals Musterzeichenfolge.

Wenn ich es ändere, yyyy-MM-ddThh:mm:ssZwird eine Ausnahme ausgelöst, da 'A' bis 'Z' und 'a' bis 'z' reserviert sind.

Gibt es eine Lösung, bei der nicht zwei DateFormats verwendet werden?

Gordon
quelle

Antworten:

144

Das Umgeben Tmit einfachen Anführungszeichen sollte funktionieren:

yyyy-MM-dd'T'hh:mm:ssZ

Zitat aus der Dokumentation (Schwerpunkt Mine):

Datums- und Uhrzeitformate werden durch Datums- und Zeitmusterzeichenfolgen angegeben. Innerhalb von Datums- und Zeitmusterzeichenfolgen werden nicht zitierte Buchstaben von 'A'bis 'Z'und von 'a'bis 'z'als Musterbuchstaben interpretiert, die die Komponenten einer Datums- oder Zeitzeichenfolge darstellen. Text kann mit einfachen Anführungszeichen ( ') in Anführungszeichen gesetzt werden , um Interpretationen zu vermeiden. "''"steht für ein einfaches Anführungszeichen. Alle anderen Zeichen werden nicht interpretiert. Sie werden beim Formatieren einfach in die Ausgabezeichenfolge kopiert oder beim Parsen mit der Eingabezeichenfolge abgeglichen.

Ihr spezifischer Anwendungsfall ist sogar als Beispiel enthalten:

Date and Time Pattern            Result
-------------------------------------------------------------
"yyyy-MM-dd'T'HH:mm:ss.SSSZ"     2001-07-04T12:08:56.235-0700  
Joey
quelle
@ Joachim: Ja, wollte das gerade hinzufügen :)
Joey