正确的返回格式
{"tbLeaveWordList":[{"id":1,"name":"==","time":"2018-10-10 14:25:40","content":"测试一下","status":1,"isreply":1},{"id":2,"name":"==","time":"2018-10-10 14:26:00","content":"测试两下","status":1,"isreply":1}]}
错误的返回格式:
{"tbLeaveWordList":[{"id":1,"name":"==","time":"2018-10-10T06:25:40.000+0000","content":"测试一下","status":1,"isreply":1},{"id":2,"name":"==","time":"2018-10-10T06:26:00.000+0000","content":"测试两下","status":1,"isreply":1}]}
显然两次请求的time时间是不同的。
原因:spring boot接收前端传递过来的时间,总是比实际时间晚几个小时或者早几个小时,这是由于使用在@RequestBody 实体类,进行接收json类型字符串的时候,会把接受的string时间字段转换成lang类型,然后对应实体类的时候,会按照GMT+0时区的时间进行处理。(引用)
解决方案:
1,使用@JsonFormat注解,并且指定时区
亲手测试可用。
2,使用@DateTimeFormat注解,但此方法在pattern="yyyy-MM-dd HH:mm:ss"时不适用Jackson,只支持时间类型为pattern="yyyy-MM-dd"的。(没有测试)