fastjson 反序列化ISO8601时间到Date类型时时间相差八小时

wh6knrhe  于 2021-11-27  发布在  Java
关注(0)|答案(4)|浏览(727)

前端使用ivew的DatePicker, 比如当前北京时间是: 2019-01-14 14:32:09, 前端返回给服务器的时间是控件已经处理为0时区的时间了. 格式是: 2019-01-14T06:32:09.029Z; 服务器端用JSON.parseObject反序列化为Date类型. 在jetty上运行时间是正确的会转到北京时间. 但是运行在tomcat上时,时间是错误的,还是UTC 0时区时间.服务器时区是正确的东八区. 操作系统windows和centos我都试过.换了好几个fastJson版本,包括现在最新版本.设置了-Duser.timezone=Asia/Shanghai 参数都有那个问题. 运行在jetty和tomcat上会有截然不同的结果困扰了我很久
我在换成使用JacksonJson情况下没有这个问题

3htmauhk

3htmauhk1#

字符串时间是以0时区格式化出来的,字符串本身不带时区,如果服务器以+8时区去解析字符串 就自然会多8个小时啊。 我这么理解的

bcs8qyzn

bcs8qyzn2#

建议debug启动tomcat,看下堆栈。

ubby3x7f

ubby3x7f3#

遇上一样的问题了。难受

egdjgwm8

egdjgwm84#

不好意思最后发现问题是我没有执行 mvn clean

相关问题