Kann mich jemand über die in der SimpleDateFormat-Klasse verfügbaren Datumsformate informieren?
Ich habe API durchlaufen, konnte aber keine zufriedenstellende Antwort finden. Jede Hilfe wird sehr geschätzt.
java
date
simpledateformat
Abhishek_Mishra
quelle
quelle
Antworten:
Datums- und Uhrzeitformate werden im Folgenden ausführlich beschrieben
SimpleDateFormat (Java Platform SE 7) - Datums- und Zeitmuster
Es kann eine
n
Anzahl von Formaten geben, die Sie möglicherweise erstellen können. ex -dd/MM/yyyy
oderYYYY-'W'ww-u
oder Sie können die Buchstaben mischen und anpassen, um das gewünschte Muster zu erzielen. Musterbuchstaben sind wie folgt.G
- Epochenbezeichner (AD)y
- Jahr (1996; 96)Y
- Wochenjahr (2009; 09)M
- Monat im Jahr (Juli; Juli; 07)w
- Woche im Jahr (27)W
- Woche im Monat (2)D
- Tag im Jahr (189)d
- Tag im Monat (10)F
- Wochentag im Monat (2)E
- Tagesname in der Woche (Dienstag; Di)u
- Wochentag Nummer (1 = Montag, ..., 7 = Sonntag)a
- AM / PM-MarkerH
- Stunde am Tag (0-23)k
- Stunde am Tag (1-24)K
- Stunde in morgens / abends (0-11)h
- Stunde in morgens / abends (1-12)m
- Minute in Stunde (30)s
- Zweiter in Minute (55)S
- Millisekunde (978)z
- Allgemeine Zeitzone (Pacific Standard Time; PST; GMT-08: 00)Z
- Zeitzone RFC 822 (-0800)X
- Zeitzone ISO 8601 (-08; -0800; -08: 00)Zum Parsen:
Verwenden:
new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
quelle
SimpleDateFormat
Erlaube das Festlegen des Gebietsschemas am Konstruktor.SimpleDateFormat formatter = new SimpleDateFormat(pattern, locale);
Lassen Sie mich einen Beispielcode herauswerfen, den ich von http://www3.ntu.edu.sg/home/ehchua/programming/java/DateTimeCalendar.html erhalten habe. Dann können Sie mit verschiedenen Optionen herumspielen, bis Sie ihn verstanden haben.
import java.text.SimpleDateFormat; import java.util.Date; public class DateTest { public static void main(String[] args) { Date now = new Date(); //This is just Date's toString method and doesn't involve SimpleDateFormat System.out.println("toString(): " + now); // dow mon dd hh:mm:ss zzz yyyy //Shows "Mon Oct 08 08:17:06 EDT 2012" SimpleDateFormat dateFormatter = new SimpleDateFormat("E, y-M-d 'at' h:m:s a z"); System.out.println("Format 1: " + dateFormatter.format(now)); // Shows "Mon, 2012-10-8 at 8:17:6 AM EDT" dateFormatter = new SimpleDateFormat("E yyyy.MM.dd 'at' hh:mm:ss a zzz"); System.out.println("Format 2: " + dateFormatter.format(now)); // Shows "Mon 2012.10.08 at 08:17:06 AM EDT" dateFormatter = new SimpleDateFormat("EEEE, MMMM d, yyyy"); System.out.println("Format 3: " + dateFormatter.format(now)); // Shows "Monday, October 8, 2012" // SimpleDateFormat can be used to control the date/time display format: // E (day of week): 3E or fewer (in text xxx), >3E (in full text) // M (month): M (in number), MM (in number with leading zero) // 3M: (in text xxx), >3M: (in full text full) // h (hour): h, hh (with leading zero) // m (minute) // s (second) // a (AM/PM) // H (hour in 0 to 23) // z (time zone) // (there may be more listed under the API - I didn't check) }
}}
Viel Glück!
quelle
java.time
AKTUALISIEREN
Die anderen Fragen sind veraltet. Die schrecklichen Legacy-Klassen, wie sie vor
SimpleDateFormat
Jahren durch die modernen Java.time- Klassen ersetzt wurden.Benutzerdefiniert
Zum Definieren Ihrer eigenen benutzerdefinierten Formatierungsmuster sind die Codes in
DateTimeFormatter
ähnlich, aber nicht genau identisch mit den Codes inSimpleDateFormat
. Lesen Sie unbedingt die Dokumentation. Suchen Sie im Stapelüberlauf nach vielen Beispielen.DateTimeFormatter f = DateTimeFormatter.ofPattern( "dd MMM uuuu" , Locale.ITALY ) ;
Standard ISO 8601
Die Norm ISO 8601 definiert Formate für viele Arten von Datums- und Uhrzeitwerten. Diese Formate sind für den Datenaustausch konzipiert und können sowohl maschinell analysiert als auch vom Menschen kulturübergreifend leicht gelesen werden.
Die Klassen java.time verwenden standardmäßig ISO 8601-Formate, wenn Zeichenfolgen generiert / analysiert werden. Rufen Sie einfach die
toString
&parse
Methoden auf. Sie müssen kein Formatierungsmuster angeben.Für einen Wert in UTC bedeutet das
Z
am Ende UTC und wird „Zulu“ ausgesprochen.Lokalisieren
Anstatt ein Formatierungsmuster anzugeben, können Sie java.time automatisch für Sie lokalisieren lassen. Verwenden Sie die
DateTimeFormatter.ofLocalized…
Methoden.Erhalten Sie den aktuellen Moment mit der Wanduhrzeit, die von den Menschen einer bestimmten Region (einer Zeitzone) verwendet wird.
ZoneId z = ZoneId.of( "Africa/Tunis" ); ZonedDateTime zdt = ZonedDateTime.now( z );
Generieren Sie Text im Standardformat ISO 8601, der sinnvoll erweitert wurde, um den Namen der Zeitzone in eckigen Klammern anzuhängen.
Generieren Sie automatisch lokalisierten Text.
Im Allgemeinen ist es besser, automatisch zu lokalisieren, als sich mit fest codierten Formatierungsmustern zu ärgern.
Über java.time
Das java.time- Framework ist in Java 8 und höher integriert. Diese Klassen verdrängen die lästigen alten Legacy - Datum-Zeit - Klassen wie
java.util.Date
,Calendar
, &SimpleDateFormat
.Weitere Informationen finden Sie im Oracle-Lernprogramm . Suchen Sie im Stapelüberlauf nach vielen Beispielen und Erklärungen. Die Spezifikation ist JSR 310 .
Das Joda-Time- Projekt, das sich jetzt im Wartungsmodus befindet , empfiehlt die Migration zu den Klassen java.time .
Sie können java.time- Objekte direkt mit Ihrer Datenbank austauschen . Verwenden Sie einen JDBC-Treiber, der mit JDBC 4.2 oder höher kompatibel ist . Keine Notwendigkeit für Strings, keine Notwendigkeit für
java.sql.*
Klassen. Hibernate 5 und JPA 2.2 unterstützen java.time .Woher bekomme ich die java.time-Klassen?
quelle
Überprüfen Sie die Formate hier http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
Main
System.out.println("date : " + new classname().getMyDate("2014-01-09 14:06", "dd-MMM-yyyy E hh:mm a z", "yyyy-MM-dd HH:mm"));
Methode
public String getMyDate(String myDate, String returnFormat, String myFormat) { DateFormat dateFormat = new SimpleDateFormat(returnFormat); Date date=null; String returnValue=""; try { date = new SimpleDateFormat(myFormat, Locale.ENGLISH).parse(myDate); returnValue = dateFormat.format(date); } catch (ParseException e) { returnValue= myDate; System.out.println("failed"); e.printStackTrace(); } return returnValue; }
quelle