前端使用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情况下没有这个问题
4条答案
按热度按时间3htmauhk1#
字符串时间是以0时区格式化出来的,字符串本身不带时区,如果服务器以+8时区去解析字符串 就自然会多8个小时啊。 我这么理解的
bcs8qyzn2#
建议debug启动tomcat,看下堆栈。
ubby3x7f3#
遇上一样的问题了。难受
egdjgwm84#
不好意思最后发现问题是我没有执行 mvn clean