Unparseable Datum DateFormat.parse()
Folgte ich ein paar anderen Lösungen, die auf dieser Website zu diesem dilemma, und ich habe nicht Joda Mal installiert, aber ich bin immer noch ratlos, warum dieser Fehler aufgetreten ist.
Ich habe auch versucht, das entfernen der Doppelpunkte, als eine Lösung angegeben, aber das hat nicht geholfen.
currentNode.getProperty("jcr:created").getString()
= 2013-03-07T11:57:08.596-05:00
Bekomme ich diesen Fehler: java.text.ParseException: Unparseable Datum: "2013-03-07T11:57:08.596-05:00"
<%@page import="
java.util.Date,
java.text.SimpleDateFormat,
java.text.DateFormat"
%>
<%
DateFormat outputFormat = new SimpleDateFormat("MMMM dd, yyyy");
DateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
String currentDate = currentNode.getProperty("jcr:created").getString();
Date date = inputFormat.parse(currentDate); //<-- Failing here
String currentDateString = outputFormat.format(date);
%>
Verwandte: stackoverflow.com/a/2202300/738746
InformationsquelleAutor Angry Spartan | 2013-03-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zeit-zone formatiert
Z
sollte-0500
, nicht-05:00
.Also ich würde vorschlagen, Sie ersetzen
mit
Sehen "=SimpleDateFormat ist javadoc weitere Informationen zu verfügbaren Formaten.
Wenn das jdk nicht zu, dass die X-Muster, die Sie haben zu Korrektur der input-string zu entfernen, die
:
. Dies kann getan werden mit einer regex :Was ist das JDK ? Getestet habe ich es mit Java 7 und es funktioniert gut.
Die
X
Muster ist neu in Java 7.Ich fügte hinzu, eine Alternative Lösung. Sehen Sie auf Bearbeiten.
Ich bin auf der Suche zu dieser Lösung nach etwa 3 Jahren von dieser Antwort und es war doch sehr hilfreich und es gibt keine anderen Lösungen, online wie dieser. plus eine für diese gute Lösung
InformationsquelleAutor drunken bot
Nach der Prüfung die Lösung von betrunkenen bot, sehe ich, dass Sie eine Zeitzone mit der Hälfte der Stunden nicht funktioniert, wie
-0530 (India).
Also die bessere Antwort ist daher:
Beachten Sie die zusätzlichen
XX
am Ende, nun auch die Minuten berücksichtigt werden.InformationsquelleAutor Mies44
Wenn diese Frage beantwortet wurde, gibt es einen alternativen Weg zum erreichen der Lösung, wenn Ihre Forderung ist nur zu Anzeige die Datum der Erstellung im format "MMMM dd,yyyy".
Es ist ein getDate () - Methode für Property-Objekt gibt ein Kalender-Objekt, von denen date-Objekt mit getTime().
So, das obige Stück code, der funktionieren würde, wenn wieder geschrieben, wie unten dargestellt.
So, es würde beseitigen die Notwendigkeit der Konvertierung von String zu Date und dann die restlichen Operationen. Hoffe, das hilft.
InformationsquelleAutor rakhi4110