SimpleDateFormat ist eine Klasse zur Lösung unseres Zeitformatproblems.
SimpleDateFormat ist eine konkrete Klasse zum Formatieren und Analysieren von Datumsangaben auf gebietsschemaabhängige Weise. Es ermöglicht Formatierung (Datum->Text), Analyse (Text->Datum) und Normalisierung. SimpleDateFormat ermöglicht die Auswahl eines beliebigen benutzerdefinierten Datums-/Uhrzeitformatmusters.
Datums- und Uhrzeitmuster Datums- und Uhrzeitformate werden durch Datums- und Uhrzeitmusterzeichenfolgen angegeben. In Musterzeichenfolgen für Datum und Uhrzeit werden die nicht in Anführungszeichen stehenden Buchstaben „A“ bis „Z“ und „a“ bis „z“ als Musterbuchstaben interpretiert und zur Darstellung von Datums- oder Uhrzeitzeichenfolgenelementen verwendet. Um Interpretationen zu vermeiden, kann der Text in einfache Anführungszeichen (') eingeschlossen werden. „''“ steht für ein einfaches Anführungszeichen. Alle anderen Zeichen werden nicht interpretiert; sie werden während der Formatierung einfach in die Ausgabezeichenfolge kopiert oder beim Parsen mit der Eingabezeichenfolge abgeglichen.
Folgende Musterbuchstaben sind definiert (alle anderen Zeichen „A“ bis „Z“ und „a“ bis „z“ sind reserviert):
Beispiel für die Darstellung eines Buchstaben-, Datums- oder Zeitelements
G Epochenkennzeichen Text AD
Jahr y Jahr 1996;
M Monat im Jahr Monat Juli;
w Anzahl der Wochen im Jahr Nummer 27
W Anzahl der Wochen im Monat Nummer 2
D Anzahl der Tage im Jahr Zahl 189
d Anzahl der Tage im Monat Zahl 10
F Woche des Monats Nummer 2
E Wochentag Text Dienstag;
a Am/pm Markierungstext PM
H Stunde des Tages (0-23) Zahl 0
k Stunde des Tages (1-24) Zahl 24
Anzahl der Stunden in K am/pm (0-11) Zahl 0
h Stunde in am/pm (1-12) Zahl 12
m Anzahl der Minuten in einer Stunde Zahl 30
s Sekunden in Minuten Zahl 55
S Anzahl der Millisekunden Zahl 978
z Zeitzone Allgemeine Zeitzone Pacific Standard Time;
Z-Zeitzone RFC 822-Zeitzone -0800
Das folgende Beispiel zeigt, wie Datums- und Uhrzeitmuster im US-Gebietsschema interpretiert werden. Das angegebene Datum und die angegebene Uhrzeit sind 2001-07-04 12:08:56 Ortszeit in der pazifischen Zeitzone der Vereinigten Staaten
Ergebnisse des Datums- und Zeitmusters
„yyyy.MM.dd G 'at' HH:mm:ss z“ 2001.07.04 AD um 12:08:56 PDT
„EEE, MMM d, ''yy“ Mi, 4. Juli 2001
„h:mm a“ 12:08 Uhr
„hh 'o''clock' a, zzzz“ 12 Uhr, Pacific Daylight Time
„K:mm a, z“ 0:08 Uhr, PDT
„yyyyy.MMMMM.dd GGG hh:mm aaa“ 02001.Juli.04 AD 12:08 Uhr
„EEE, d MMM yyyy HH:mm:ss Z“ Mi, 4. Juli 2001 12:08:56 -0700
„yyMMddHHmmssZ“ 010704120856-0700
„yyyy-MM-dd'T'HH:mm:ss.SSSZ“ 2001-07-04T12:08:56.235-0700
Praktische Anwendungsbeispiele von SimpleDateFormat in der Programmierung:
(1) Formatierung (Datum->Text)
Im Allgemeinen werden Datum und Uhrzeit auf Chinesisch häufig verwendet: 20070719 20:29:30
SimpleDateFormat formater = new SimpleDateFormat("yyyyMMdd hh:mm:ss");
System.out.println("Date to String "+formater.format(new Date()));
Ähnliche gebräuchliche Formen sind jjmmtt hh:mm:ss jjjj-mm-tt hh:mm:ss dd-mm-jjjj hh:mm:ss
Es ist jedoch erwähnenswert, dass dieses Format (19. Juli 2007) und seine ähnlichen Formen einen kleinen Trick haben: 19. Juli 2007
SimpleDateFormat formater = new SimpleDateFormat("ddMMMyy",,new Locale("US"))
System.out.println("Date to String "+formater.format(new Date()).toUpperCase());
Da es auf Englisch ist, sollte der Objektparameter „Locale“ verwendet werden, andernfalls wird das standardmäßige lokale Locale verwendet.
(2) Analyse (Text->Datum)
Im Allgemeinen können Sie jede gewünschte Form von Datums- und Uhrzeitmodus und Textparametern verwenden, um die Uhrzeit im gewünschten Format zu erhalten. Beispielsweise gibt 2007-7-19 ein Zeitobjekt vom Typ java.util.Date und die Stunden zurück , Minuten und Sekunden werden mit Nullen aufgefüllt.
formater = new SimpleDateFormat("yyyyMMMdd",new Locale("US"));
versuchen...{
System.out.println("String to Date "+formater.parse("2007sep01"));
} Catch (ParseException e) ...{
e.printStackTrace();
}
Insbesondere,
formater = new SimpleDateFormat("yyyyMMMdd",new Locale("US"));
versuchen...{
System.out.println("String to Date "+formater.parse("2007sep01"));
} Catch (ParseException e) ...{
e.printStackTrace();
}
Außerdem wird ein Datumsobjekt vom Typ java.util.Date zurückgegeben, wobei Stunden, Minuten und Sekunden mit Nullen aufgefüllt sind.
(3) Text -> Zeitstempel, Datum -> Zeitstempel
Zeitstempel t;
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
versuchen...{
t = new Timestamp(format.parse("2007-07-19 00:00:00").getTime());
} Catch (ParseException e) ...{
e.printStackTrace();
}
Zeitstempel t;
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
t = neuer Zeitstempel(neues Datum().getTime