解决spring boot接收前端传递过来的json数据时,接收到的时间与实际传递时间不一致的问题
来源:互联网 发布:长沙网络自考 编辑:程序博客网 时间:2024/05/01 17:32
spring boot接收前端传递过来的时间,总是比实际时间晚几个小时或者早几个小时,这是由于使用在@RequestBody 实体类,进行接收json类型字符串的时候,会把接受的string时间字段转换成lang类型,然后对应实体类的时候,会按照GMT+0时区的时间进行处理。
解决办法:
1,使用@JsonFormat注解,并且指定时区
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")private Date timingDate;
2,使用@DateTimeFormat注解,但此方法在pattern="yyyy-MM-dd HH:mm:ss"时不适用Jackson,只支持时间类型为pattern="yyyy-MM-dd"的。
@DateTimeFormat(pattern="yyyy-MM-dd")private Date timingDate;
3,Controller接收时,按照json字符串接收,然后代码对应到bean里时,特殊处理时间字段。
需要使用到net.sf.json。
import net.sf.json.JSONObject;
import net.sf.json.util.JSONUtils;
@RequestMapping("/insideByJson.tml")public @ResponseBody Map<String, Object> insideByJson(@RequestBody String jsonParam) {//json字符串转换成beanJSONObject json=JSONObject.fromObject(jsonParam);String[] dateFormats = new String[]{"yyyy-MM-dd HH:mm:ss","yyyy-MM-dd"}; JSONUtils.getMorpherRegistry().registerMorpher(new DateMorpher(dateFormats)); Inside inside=(Inside) JSONObject.toBean(json, Inside.class);}
阅读全文
0 0
- 解决spring boot接收前端传递过来的json数据时,接收到的时间与实际传递时间不一致的问题
- Spring MVC 接收前端传递的表单json字符串
- SpringMVC,Controller如何接收前端传递过来的数组
- freemarker前台接收后台传递过来的map数据处理问题
- 解决struts2接收不到页面传递过来的对象VO的问题
- Spring MVC参数的传递与接收
- springMVC中前端将传递数据传递到后端后端的接收方式
- springmvc和js前端的数据传递和接收方式
- springMVC如何接收前端传递的数组数据
- springmvc和js前端的数据传递和接收方式
- SSM-后端接收前端传递的文件
- SpringMVC接收前台传递过来的值的方法
- php接收从表单传递过来的变量.
- struts2中的Action接收表单传递过来的参数
- controller中接收JSP传递的JSON
- Spring MVC中action接收从页面传递过来的参数方式
- 关于webservice服务器接收不到Android传递过来的参数的问题
- highcharts如何接收java作为后台 struts2 传递过来的动态数据
- JS/JQuery 邮箱 手机 电话 正则验证
- 58. Length of Last Word
- 基于mvc模式的应用框架之spring(一)
- 3D动画概述暨骨骼动画实现
- SQL IN操作符
- 解决spring boot接收前端传递过来的json数据时,接收到的时间与实际传递时间不一致的问题
- qtcreator中常用快捷键总结
- RSA 加密解密
- 机器人学、机器视觉与控制:MATLAB算法基础
- 使用Spring mvc 的返回值拦截器对controller的返回值做拦截处理
- awk命令
- 二维码的两种生成方法(前端js生成,后端java生成)
- 集合之间的继承关系
- 订单添加 批量删除 搜索 排序 时间排序 物流状态