Http Get请求传递Date型参数报错

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")

你可能感兴趣的:(Http Get请求传递Date型参数报错)