2010-01-26 8 views
55

Gibt es eine Entsprechung zur Formatierung von php date() in Java? Ich meine, in PHP kann ich Backslash-Escape-Zeichen verwenden, um sie wörtlich zu behandeln. I.e. yyyy \ y \ e \ a \ r würde 2010 Jahr werden. Ich habe in Java nichts Ähnliches gefunden, alle Beispiele behandeln nur eingebaute Datumsformate.Java-Datumsformat - einschließlich zusätzlicher Zeichen

Insbesondere beschäftige ich mich mit JCalendar Datumsauswahl und deren dateFormatString Eigenschaft.

Ich brauche es, weil in meinem Gebietsschema ist es erforderlich, alle Arten von zusätzlichen Sachen im Datumsformat, wie d zu schreiben. (für Tag) nach Tagen Teil, m. (seit Jahren) nach Jahren Teil und so weiter. Im schlimmsten Fall könnte ich String Replace oder Regexp verwenden, aber vielleicht gibt es einen einfacheren Weg? Danke im Voraus!

Antwort

107

Sicher, mit der SimpleDateFormat Sie können Literalzeichenfolgen einschließen:

Innerhalb der Musterzeichenfolgen für Datum und Uhrzeit werden nicht angebene Buchstaben von "A" bis "Z" und von "a" bis "z" als Musterbuchstaben interpretiert, die die Komponenten einer Datums- oder Uhrzeitzeichenfolge darstellen. Text kann mit einfachen Anführungszeichen (') zitiert werden, um eine Interpretation zu vermeiden. "''" repräsentiert ein einfaches Zitat. Alle anderen Zeichen werden nicht interpretiert; Sie werden während der Formatierung einfach in die Ausgabezeichenfolge kopiert oder beim Parsen mit der Eingabezeichenfolge verglichen.

"hh 'o''clock' a, zzzz" 12 o'clock PM, Pacific Daylight Time 
+0

super, das ist genau das, was ich brauche. Überraschenderweise habe ich keine so einfache Sache in einem der zahlreichen Beispiele gefunden, die ich im Web durchsucht habe :) Vielen Dank! – Sejanus

+1

Wie entkomme ich Zitatzeichen? Ich versuche etwas mit dem Format mm zu machen. Zeige zum Beispiel 46 Minuten wie 46 '. – Sotti

+3

@Sotti: '46'''. Der Erste, der dem Zweiten entkommt. – Thilo

7

können Sie String.format verwenden, wie in java.util.Formatter dokumentiert:

Calendar c = ...; 
String s = String.format("%tY year", c); 
// -> s == "2010 year" or whatever the year actually is 
-1

java.text.SimpleDateFormat

SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd"); 
String formattedDate = formatter.format(date); 

Sie finden hier weitere Informationen erhalten link text