Ich habe eine Zeichenfolge " 11/15/2013 08:00:00
", ich möchte sie auf " 11/15/2013
" formatieren. Was ist das richtige DateTimeFormatter
Muster?
Ich habe viele ausprobiert und gegoogelt und bin immer noch nicht in der Lage, das richtige Muster zu finden.
edit: Ich suche Joda-Time DateTimeFormatter
, nicht Javas SimpleDateFormat ..
java
jodatime
date-format
iCodeLikeImDrunk
quelle
quelle
Antworten:
Joda Zeit
Erstellen Sie eine
DateTimeFormatter
VerwendungDateTimeFormat.forPattern(String)
Mit Joda Time würden Sie es so machen:
Standard Java ≥ 8
In Java 8 wurde eine neue Datums- und Uhrzeitbibliothek eingeführt, die den Umgang mit Datums- und Uhrzeitangaben erleichtert. Wenn Sie Standard Java Version 8 oder höher verwenden möchten, verwenden Sie einen DateTimeFormatter . Da Sie keine Zeitzone in Ihrer
String
, einer java.time.LocalDateTime oder einer LocalDate haben , können andernfalls die zeitzonierten Sorten ZonedDateTime und ZonedDate verwendet werden.Standard Java <8
Vor Java 8 würden Sie SimpleDateFormat und java.util.Date verwenden
quelle
SimpleDateFormat
. Lesen Sie die API-Dokumentation.Ich füge dies hier hinzu, obwohl die anderen Antworten völlig akzeptabel sind. In JodaTime sind Parser in DateTimeFormat vorgefertigt:
Dies sind die meisten Optionen, die mit ihrem Format ausgedruckt wurden:
quelle
quelle
DateTime.now().toString("HH:mm:ss")
Ich denke, das wird funktionieren, wenn Sie JodaTime verwenden:
Ich habe einen Teil davon von hier bekommen .
quelle
D
für den Tag des Jahres gilt, aber mein "Link zur Dokumentation" ist nicht veraltet: Die Dokumentation, auf die ich verlinkt habe, ist veraltet. Ich habe nicht um seiner selbst willen auf die Dokumentation verlinkt, sondern auf die Seite, von der ich Code erhalten habe - was zufällig eine veraltete Dokumentation ist.Ich habe eine sehr dumme, aber funktionierende Option. wenn Sie den String fullDate = "15.11.2013 08:00:00" haben;
Das sollte einfach und schnell gehen. :) :)
quelle
AKTUALISIERT:
Sie können: eine Konstante erstellen:
Dieses DateTimeFormat wird importiert von: (seien Sie vorsichtig damit)
Analysieren Sie das Datum mit:
Vor:
DateTime.parse ("201711201515", DateTimeFormat.forPattern ("yyyyMMddHHmm")). ToString ("yyyyMMdd");
wenn Sie datetime wollen:
quelle
Das funktioniert
quelle
Eine andere Möglichkeit ist:
Ich bin nicht ganz sicher, aber ich denke, dies könnte schneller sein / weniger Speicher verbrauchen als die
.split()
Methode.quelle