【发布时间】:2014-03-19 17:56:07
【问题描述】:
我遇到了在 Java PLay 2.2.1 中使用 Form 解析 java.util.Date 类型时出错的问题。我的示例类的模型是:
@Entity
public class SampleModel extends Model
{
@Id
Long id;
@Temporal(javax.persistence.TemporalType.TIMESTAMP)
@Required(message="endHour must be specified.")
@Formats.DateTime(pattern="yyyyMMddhhmmss")
private Date date;
public setId(Long id){
this.id = id;
}
public Long getId(){
return this.id;
}
public setDate(Date date){
this.date = date;
}
public Date getDate(){
return this.date;
}
}
而在控制器中Form的使用是这样的:
public class ControllerSample extends Controller{
public static Result create(){
JsonNode request = request().body().asJson();
Form<SampleModel> form = Form.form(SampleModel.class).bind(request);
if(form.hasErrors())
{
//It always get Errors with dates
}
....
return ok();
}
}
最后我贴出来的JSON是这样的:
{"date":"20140318120000"}
我找不到 Form 正确解析 Date 对象的方式。有人可以指导我吗?
【问题讨论】:
-
你试过大写 H 的“yyyyMMddHHmmss”吗?
-
是的,我有。它不断收到错误。感谢您的建议。
-
您可以尝试在 @Formats.DateTime( 和您发送的 JSON 中像这样分隔日期部分:“yyyy.MM.dd HH:mm:ss”
-
我最终为整个实体创建了自己的 json 解析器,并在该方法中完成了日期解析。感谢您的建议。
-
错误是什么?您是否尝试将
@Temporal类型更改为Date?
标签: java json date playframework-2.2