JSF转换器时间戳

时间:2011-01-09 13:25:51

标签: jsf timestamp jsf-2 converter

我想将输入转换为时间戳值。

我在示例中只找到了一个日期转换器。有没有最好的做法?

谢谢


更新

我想保存用户的生日,但我的后端需要时间戳值。我将它绑定到我的jsf前端有问题..

也许一个例子的链接会很有用: - )

我尝试了如下:

public void setBday(Date bday) {
            member.setBirthday(new Timestamp(bday.getTime()));
        }
        public Timestamp getBday() {
            return member.getBirthday();
        }

但我得到例外(奇怪):

/createMember.xhtml @34,54 value="#{member.bday}": Cannot convert 13.01.83 01:00 of type class java.util.Date to class java.sql.Timestamp

(可能是因为get方法?)

1 个答案:

答案 0 :(得分:5)

绑定到Date#getTime()而不是以毫秒为单位获取/设置原始时间戳。

<h:inputText value="#{bean.date.time}" />

或者如果您想输入/输出人类可读日期,那么只需坚持使用#{bean.date}并使用标准日期转换器。

<h:inputText value="#{bean.date}">
    <f:convertDateTime type="date" dateType="short" />
</h:inputText>

在后端只需使用Date#getTime()来处理时间戳。


更新:您不应该使用特定于JDBC的API来混淆您的模型。 java.util.Date表示时间戳。仅在此时使用java.sql.Timestamp即将java.util.Date保留在数据库的TIMESTAMPDATETIME列中。

preparedStatement.setTimestamp(index, new Timestamp(bean.getDate().getTime()));