2011-01-09 67 views
4

我想將我的輸入轉換爲時間戳值。JSF Converter Timestamp

我只在例子中找到了一個dateconverter。有沒有最佳做法?

謝謝


更新:

我想保存用戶的生日,但我的後端需要一個時間戳值。我有問題,它綁定到我的JSF前端..

也許一個例子的鏈接將helful :-)

我試了一下,如下所示:

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方法嗎?)

回答

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時,您將在數據庫的TIMESTAMPDATETIME列中保留java.util.Date

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

我真的不明白你的建議: - 在我編輯的問題/你看,請 – Sven 2011-01-09 13:53:25