我喜欢Play!Framework将通过POST发送的时间戳转换为模型中的java.util.Date格式,但我不知道它是否可以直接使用。
这是我的模特:
public class Contact extends Model {
@Id
private Long id;
@Constraints.Required
private String name;
@JsonIgnore
@Temporal(TemporalType.TIMESTAMP)
private Date removed = null; // When the contact is no longer active
}
我尝试添加@Formats.DateTime(pattern="?")
以删除,但由于DateTime使用SimpleDateFormat,我无法找到用于将时间戳转换为正确日期的模式。
我该怎么办?
答案 0 :(得分:1)
好的,我会回答这个问题,这就是我所做的(也许不是最好的方法,但它确实有效)。
我不使用模型将已发布的参数与已删除的值进行匹配,而是在我的控制器中执行此操作:
String[] accepts = {"name", "datestamp"};
Form<Contact> form = Form.form(Contact.class).bindFromRequest(accepts);
Date date = null;
try {
date = new Date(Long.parseLong(form.field("datestamp").value()));
}
catch (NumberFormatException nfe) {}
if (date == null) {
form.reject("date", "error.invalid");
}
if (form.hasErrors()) {
return badRequest(form.errorsAsJson());
}
else {
Contact contact = form.get();
contact.setRemoved(date);
contact.save();
return ok();
}