fastjson 1970-01-01 00:00 之前的日期 无法转成 java.sql.Timestamp

z31licg0  于 2021-11-27  发布在  Java
关注(0)|答案(5)|浏览(443)

Caused by: com.alibaba.fastjson.JSONException: can not cast to Timestamp, value : -65001600000

zdwk9cvp

zdwk9cvp1#

什么版本啊?我测试1.2.54版本是好的

acruukt9

acruukt92#

版本为:1.2.54,redisTemplate对象为:StringRedisTemplate,mysql 存储的日期为:1967-12-11 00:00
首先是缓存user对象(包含java.sql.Timestamp类型):
session是一个Map
redisTemplate.opsForHash().putAll(SystemConstants.SESSION_ID + userId, session);
然后获取数据(StringRedisTemplate):
String user = (String) getSession().get(SystemConstants.USER);
return JSONObject.parseObject(user).toJavaObject(UserVO.class);
1970-01-01 00:00 之前的日期报:Caused by: com.alibaba.fastjson.JSONException: can not cast to Timestamp, value : -65001600000
1970-01-01 00:00之后的日期都没有问题

vq8itlhq

vq8itlhq3#

user 是一个String类型的JSON 字符串

6jygbczu

6jygbczu4#

因为时间戳压根就不支持那么长得啦

rwqw0loc

rwqw0loc5#

在新版本1.2.61, 也未复现。

相关问题