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?

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  


@ Joachim: Ja, wollte das gerade hinzufügen :)
Joey
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.