在spring mvc中经常使用对象来接受ajax传递的参数,假如使用的是fastjson对参数的解析,对于date类型有时会抛出这样的异常
Exception in thread “main” com.alibaba.fastjson.JSONException: For input string: “9999-09-09”
解决方式一:
指定时间格式
JSON.DEFFAULT_DATE_FORMAT = “yyyy-MM-dd”;
解决方式二:
在字段上使用注解
@JSONField(format=”yyyy-MM-dd”)
测试
public class Test {
public static void main(String[] args){
//JSON.DEFFAULT_DATE_FORMAT = "yyyy-MM-dd";
//默认格式是:yyyy-MM-dd HH:mm:ss
//year 1000~3000 之间都可以自动转换成date
//String str = "{userName:'ftinglee',birthday:'1990-09-09'}";
String str = "{userName:'ftinglee',birthday:'3000-01-01'}"; // error
//String str = "{userName:'ftinglee',birthday:'3000-01-01 00:00:00'}"; // ok
Model user = JSON.parseObject(str,Model.class);
}
}
class Model{
private String userName;
// @JSONField(format="yyyy-MM-dd")
private Date birthday;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
}