Play1.x對於日期類型數據的請求和處理

昨天幫一個前端同事調試一個play1.x中日期使用的問題,記錄一下。
場景:前端傳遞採用JS生成的日期插件,做一個model的CRUD。

拿過來調試的時候報錯:
Caused by: java.lang.IllegalArgumentException: Can not set java.sql.Timestamp field models.ActConfig.act_
start_time to java.util.Date

請求requst:



看了一下model及數據庫,act_start_time與act_end_time都是timestamp類型,
model的定義如下:

    @Column(name="act_start_time")
    @As(format="yyyy-MM-dd HH:mm:ss")
    public Timestamp act_start_time;
從異常信息來看,是進行類型綁定的時候出錯了,前端請求過來的認爲是java.util.Date
所以先將model修改如下:
    @Column(name="act_start_time")
    @As(format="yyyy-MM-dd HH:mm:ss")
    public Date act_start_time;
再次請求時發現已經沒有異常,不過發現時分秒被截取了,以下是調用Date.toString()
act_start_time:Wed Jan 14 00:00:00 CST 2015,act_end_timeWed Jan 14 00:00:00 CST 2015

如此上面定義的    @As(format="yyyy-MM-dd HH:mm:ss")似乎沒有作用啊。。。

google上搜索了"play date format",從這個問題的http://stackoverflow.com/questions/15697184/play-framework-pretty-print-date
的側面,去看了application.conf的設置,
date.format=yyyy-MM-dd

將其修改爲:
date.format=yyyy-MM-dd HH:mm:ss

更新後發現可以了
act_start_time:Wed Jan 14 17:00:00 CST 2015,act_end_timeWed Jan 14 17:00:00 CST 2015

總結:
1.model需要設置爲java.util.Date
2.application.conf中需要設置date.format=yyyy-MM-dd HH:mm:ss(按具體需求格式)

發佈了45 篇原創文章 · 獲贊 3 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章