标签:play1.x date
昨天帮一个前端同事调试一个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(按具体需求格式)
Play1.x对于日期类型数据的请求和处理
标签:play1.x date
原文地址:http://blog.csdn.net/tonylee0329/article/details/42774575