fastjson icon indicating copy to clipboard operation
fastjson copied to clipboard

fastjson不能反序列化Date(-1+0800)这种格式的json的时间

Open likaimelody opened this issue 8 years ago • 6 comments

当时间中的时间戳或者时区为负数时,fastjson反序列化报错:Exception in thread "main" com.alibaba.fastjson.JSONException: For input string: "-1+0800"。 这个怎么解决。 `public static class SimpleInfo{ public Calendar arrivalDateTime; }

public static void main(String[] args){
    String timeString = "{\"ArrivalDateTime\":\"\\/Date(-1+0800)\\/\"}";
    SimpleInfo sinfo = JSON.parseObject(timeString, new TypeReference<SimpleInfo>(){});
}`

likaimelody avatar Jan 02 '18 10:01 likaimelody

I guess this json is illegal.

kimmking avatar Jan 03 '18 08:01 kimmking

but,"{"ArrivalDateTime":"\/Date(1+0800)\/"}" this json can be deserialized correctly。

likaimelody avatar Jan 03 '18 08:01 likaimelody

这个问题现在是否有结论呢?1970年以前的json时间无法反序列化。如:/Date(-62135596800000+0800)/

cqdavidwei avatar Jan 09 '18 09:01 cqdavidwei

"/Date(1500000000000-0800)/",这种格式的json日期也不能反序列化为Calendar或Date对象,也就是时间戳或者时区为负数时,都不能被fastjson反序列化,这些格式是.net平台把时间序列化为json的默认格式。

likaimelody avatar Jan 10 '18 02:01 likaimelody

Date.valueOf("1970-01-01")序列化没有问题,但是反序列化为Date类型时就会报错,这个问题有人解决了吗?

dayong419 avatar Jul 02 '19 16:07 dayong419

老哥们,这个问题有解决办法了吗

zhoujinyou0616 avatar Aug 07 '23 14:08 zhoujinyou0616