springboot使用Date接收参数
- 若参数为时间戳,可直接使用Date接收
- 若参数为字符串类型,如"yyyy-MM-dd HH:mm:ss"格式,使用Date接收,报如下错误:
Can not parse date while it seems to fit format 'yyyy-MM-dd'T'HH:mm:ss.SSS
原因是:后端接收数据时,需要通过jackson将数据转换成对象。jackson转换默认的时间格式是 'yyyy-MM-dd’T’HH:mm:ss.SSS’,因此出现异常。
解决方法为:指定解析的格式,如下:
注解@DataFormAT主要是前后到后台的时间格式的转换
注解@JsonFormat主要是后台到前台的时间格式的转换
时间转换时,时区默认使用的是格林尼治时间,比北京时间早八小时,源码注释如下:
因此需指定时区timezone 为东八区
示例如下 :
@ApiModelProperty(value="时间窗开始时间",name="startTime", example = "2018-11-22 23:12:23")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date startTime;