1.场景
做excel导出时,使用get请求传递时间的格式: 2019-07-31T16:00:00.000Z,调用接口时,报错
Field error in object 'tmsShippingOrderQueryVo' on field 'endTime': rejected value [1565280000000];
2.问题
后台查询的对象的字段startTime是Date类型,类型不一致
3.解决
startTime=2011/12/02 10:50:25
使用yyyy/mm/dd HH:mm:ss格式传递
http协议是外国人定的,所以得用外国常用时间格式传递
前端处理: 格式化时间格式
format (time, format) { //time 时间戳 format指定时间格式 format = format === null || format === undefined ? 'yyyy-MM-dd HH:mm:ss' : format var t = new Date(time) var tf = function (i) { return (i < 10 ? '0' : '') + i } return format.replace(/yyyy|MM|dd|HH|mm|ss/g, function (a) { switch (a) { case 'yyyy': return tf(t.getFullYear()) case 'MM': return tf(t.getMonth() + 1) case 'mm': return tf(t.getMinutes()) case 'dd': return tf(t.getDate()) case 'HH': return tf(t.getHours()) case 'ss': return tf(t.getSeconds()) } }) },
后端处理:
入参格式化
使用 Spring 的 @DateTimeFormat 注解格式化参数
出参格式化
@JsonFormat 注解
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")