使用f:convertDateTime转换时间时的日期错误

时间:2010-09-01 06:14:52

标签: java web-applications jsf jsf-2 facelets

我遇到f:convertDateTime的问题,当我转换时间时似乎使用错误消息 javax.faces.converter.DateTimeConverter.DATE_detail (即它应该使用 javax.faces .converter.DateTimeConverter.TIME_detail )。

我猜测的问题是,我使用的是一种模式,因此它不知道它是一个日期或时间,它正在转换。这就是我正在尝试的(“timePattern”是“hh.mm”):

<f:convertDateTime type="time" pattern="#{timePattern}" />

即使指定了type =“time”,它仍然使用 DATE_detail 错误消息。这是一个错误还是我的假设,它应该使用错误的 TIME_detail 错误消息,我必须创建自己的转换器?

2 个答案:

答案 0 :(得分:3)

不幸的是,这也是DateTimeConverter javadoc所说的。以下是相关摘录:

  

如果指定了pattern,则其语法必须符合java.text.SimpleDateFormat指定的规则。此类模式将用于解析typedateStyletimeStyle属性将被忽略。

但我必须承认,JSF男孩必须在f:convertDateTime pdldoc中明确指定它。从那里开始并不明显。我向JSF男孩报告一个问题,让他们澄清这一部分。

为了让它发挥作用,您最好的选择是不依赖于模式,而是依赖于typedateStyletimeStyle(以及区域设置),创建extends DateTimeConverter的自定义日期时间转换器并相应地覆盖这些方法。

答案 1 :(得分:-1)

您还必须在邮件中定义javax.faces.converter.DateTimeConverter.TIME。

请看这里:http://www.icefaces.org/JForum/posts/list/16119.page在最后一个帖子之前发布一个帖子。