我想将输入转换为时间戳值。
我在示例中只找到了一个日期转换器。有没有最好的做法?
谢谢
更新
我想保存用户的生日,但我的后端需要时间戳值。我将它绑定到我的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方法?)
答案 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
保留在数据库的TIMESTAMP
或DATETIME
列中。
preparedStatement.setTimestamp(index, new Timestamp(bean.getDate().getTime()));