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

2025-11-03 665 views
8

当时间中的时间戳或者时区为负数时,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>(){});
}`

回答

5

I guess this json is illegal.

3

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

1

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

0

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

0

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

2

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