Datumsfehler beim Konvertieren der Zeit mit F: convertDatetime
-
26-09-2019 - |
Frage
Ich habe ein Problem mit F: convertDatetime, dass es die Fehlermeldung zu verwenden scheint javax.faces.converter.datetimeConverter.date_detail Wenn ich die Zeit konvertiere (dh es sollte sie verwenden javax.faces.converter.datetimeConverter.time_detail).
Ich vermute, das Problem ist, dass ich ein Muster verwende und daher nicht weiß, ob es ein Datum oder eine Zeit ist, in der es sich um Konvertiten bindet. Das versuche ich ("Timepatt" ist "hh.mm"):
<f:convertDateTime type="time" pattern="#{timePattern}" />
Obwohl type = "Zeit" angegeben ist, verwendet es immer noch die Datum_Detail Fehlermeldung. Ist dies ein Fehler oder ist meine Annahme, dass es das verwenden sollte Time_detail Fehlermeldung falsch, und ich muss meinen eigenen Konverter erstellen?
Lösung
Leider ist das auch das der DateTimeConverter
Javadoc erzählt. Hier ist ein Relevanzauszug:
Wenn ein
pattern
wurde angegeben, seine Syntax muss die angegebenen Regeln entsprechenjava.text.SimpleDateFormat
. Ein solches Muster wird verwendet, um zu analysieren, und dietype
,dateStyle
, undtimeStyle
Eigenschaften werden ignoriert.
Ich muss jedoch zugeben, dass die JSF -Jungen es ausdrücklich in der angeben mussten f:convertDateTime
pdldoc auch. Von dort aus ist es nicht offensichtlich. Ich würde den JSF -Jungs ein Problem melden, um sie dazu zu bringen, diesen Teil zu klären.
Um es zum Laufen zu bringen, ist Ihre beste Wahl entweder nicht auf das Muster, sondern auf das Muster, sondern auf type
, dateStyle
und timeStyle
(und das Gebietsschema) stattdessen, oder Erstellen Sie einen benutzerdefinierten Datumskonverter, der extends DateTimeConverter
und überschreibt die Methoden entsprechend.
Andere Tipps
Sie müssen auch javax.faces.converter.datetimeConverter.time in Ihren Nachrichten definieren.
Schau hier: http://www.icefaces.org/jforum/posts/List/16119.page Ein Beitrag vor dem letzten.