JSF转换器时间戳

Sve*_*ven 4 jsf timestamp converter jsf-2

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

我在例子中只找到了一个日期转换器.有没有最佳做法?

谢谢


更新:

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

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

我尝试了如下:

public void setBday(Date bday) {
            member.setBirthday(new Timestamp(bday.getTime()));
        }
        public Timestamp getBday() {
            return member.getBirthday();
        }
Run Code Online (Sandbox Code Playgroud)

但我得到例外(奇怪):

/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
Run Code Online (Sandbox Code Playgroud)

(这可能是因为get方法吗?)

Bal*_*usC 5

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

<h:inputText value="#{bean.date.time}" />
Run Code Online (Sandbox Code Playgroud)

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

<h:inputText value="#{bean.date}">
    <f:convertDateTime type="date" dateType="short" />
</h:inputText>
Run Code Online (Sandbox Code Playgroud)

在后端只是Date#getTime()用来处理时间戳.


更新:您不应该使用特定于JDBC的API来混淆模型.该java.util.Date代表时间戳.java.sql.Timestamp仅在此时使用,您将要java.util.Date在数据库的一个TIMESTAMP或一DATETIME列中保留.

preparedStatement.setTimestamp(index, new Timestamp(bean.getDate().getTime()));
Run Code Online (Sandbox Code Playgroud)