fastjson 3000年问题

有一个字段类型是日期的,如果用户没有填写.默认的日期就是9999-99-99 这样,当这样一个日期,使用fastjson反序列化的时候,会报错.我实际的测了一下,2999年还能正常解析.3000年的时候,就报错了.


String str = "{name:'honway',date:'3000-09-09'}";

User user = JSON.parseObject(str,User.class);

System.out.println(user);

具体错误内容如下


com.alibaba.fastjson.JSONException: For input string: "3000-09-09"


日期格式化问题,fastjson默认采用"yyyy-MM-dd HH:mm:ss"格式化,或者传入一个long型的时间

你可以"{name:'honway',date:'3000-09-09 00:00:00'}";

或者你没法修改你数据库的默认值,那就修改默认的格式化格式

JSON.DEFFAULT_DATE_FORMAT = "yyyy-MM-dd";


public void test(){ 

Stringstr="{name:'honway',date:'3000-09-09'}";

JSON.DEFFAULT_DATE_FORMAT="yyyy-MM-dd";

User user=JSON.parseObject(str,User.class);

System.out.println(user);    

}

你可能感兴趣的:(fastjson 3000年问题)