Error de fecha al convertir la hora con F: ConvertDateTime
-
26-09-2019 - |
Pregunta
Tengo problemas con F: ConvertDatetime, que parece usar el mensaje de error javax.faces.converter.dateTimeconverter.date_detail Cuando convierto el tiempo (es decir, debería usar javax.faces.converter.dateTimeconverter.time_detail).
Supongo que el problema es que uso un patrón y, por lo tanto, no sabe si es una fecha o una hora en la que está vinculado a convertir. Esto es lo que estoy intentando ("TimePattern" es "HH.MM"):
<f:convertDateTime type="time" pattern="#{timePattern}" />
Aunque se especifica type = "Time", todavía usa el Date_detail mensaje de error. ¿Es este un error o es mi suposición de que debería usar el Time_detail Mensaje de error incorrecto y tengo que crear mi propio convertidor?
Solución
Desafortunadamente, eso es también lo que el DateTimeConverter
javadoc es revelador. Aquí hay un extracto de relevancia:
Si un
pattern
se ha especificado, su sintaxis debe cumplir con las reglas especificadas porjava.text.SimpleDateFormat
. Tal patrón se usará para analizar, y eltype
,dateStyle
, ytimeStyle
Las propiedades serán ignoradas.
Sin embargo, debo admitir que los chicos JSF tuvieron que especificarlo explícitamente en el f:convertDateTime
pddoc también. No es obvio a partir de ahí. Informaría un problema a los JSF Boys para que aclaren esta parte.
Para que funcione, su mejor opción es no confiar en el patrón, sino en type
, dateStyle
y timeStyle
(y el local) en su lugar, o crear un convertidor de fecha de fecha personalizado que extends DateTimeConverter
y anula los métodos en consecuencia.
Otros consejos
También debe definir javax.faces.converter.dateTimeconverter.time en sus mensajes.
Mira aquí: http://www.icefaces.org/jforum/posts/list/16119.page Una publicación antes del último.