Erro de data ao converter o horário com F: ConvertDateTime
-
26-09-2019 - |
Pergunta
Tenho problemas com F: convertDateTime, que parece usar a mensagem de erro javax.faces.converter.datetimeconverter.date_detail Quando eu converter tempo (ou seja, deve usar javax.faces.converter.datetimeconverter.time_detail).
Suponho que a questão é que eu uso um padrão e, portanto, não sabe se é uma data ou uma hora em que está ligando para converter. É isso que estou tentando ("TimePattern" é "hh.mm"):
<f:convertDateTime type="time" pattern="#{timePattern}" />
Mesmo que tipo = "tempo" seja especificado, ele ainda usa o Date_detail mensagem de erro. Isso é um bug ou é minha suposição de que ele deve usar o Time_detail Mensagem de erro errada, e eu tenho que criar meu próprio conversor?
Solução
Infelizmente, também é isso DateTimeConverter
Javadoc está dizendo. Aqui está um extrato de relevância:
Se um
pattern
foi especificado, sua sintaxe deve estar em conformidade com as regras especificadas porjava.text.SimpleDateFormat
. Esse padrão será usado para analisar, e atype
,dateStyle
, etimeStyle
As propriedades serão ignoradas.
No entanto, devo admitir que os meninos da JSF tiveram que especificá -lo explicitamente no f:convertDateTime
pdldoc também. Não é óbvio a partir daí. Eu relataria um problema aos meninos da JSF para que eles esclareçam essa parte.
Para que funcione, sua melhor aposta não está dependendo do padrão, mas em type
, dateStyle
e timeStyle
(e o local) em vez disso, em vez disso, ou Crie um conversor de hora de data personalizado que extends DateTimeConverter
e substitui os métodos de acordo.
Outras dicas
Você também deve definir javax.faces.converter.datetimeconverter.time em suas mensagens.
Olhe aqui: http://www.icefaces.org/jforum/posts/list/16119.page Um post antes do último.