前台取到的日期類型為UTC,"yyyy-MM-dd'T'HH:mm:ss.SSS",后台接收報錯如下:
org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value
of type `java.util.Date` from String "2019-08-10T02:37:54.770Z": not a valid representation
(error: Failed to parse Date value '2019-08-10T02:37:54.770Z': Unparseable date: "2019-08-10T02:37:54.770Z");
nested exception is com.fasterxml.jackson.databind.exc.InvalidFormatException:
Cannot deserialize value of type `java.util.Date` from String "2019-08-10T02:37:54.770Z":
not a valid representation (error: Failed to parse Date value '2019-08-10T02:37:54.770Z': Unparseable date: "2019-08-10T02:37:54.770Z")
究其原因為Spring無法將UTC類型的值解析為Date日期格式,解決方法如下:
formatTime(time, format) {
var date = new Date(time);
var formatter = function (i) { return (i < 10 ? '0' : '') + i };
return format.replace(/yyyy|MM|dd|HH|mm|ss/g, function (a) {
switch (a) {
case 'yyyy':
return formatter(date.getFullYear());
break;
case 'MM':
return formatter(date.getMonth() + 1);
break;
case 'mm':
return formatter(date.getMinutes());
break;
case 'dd':
return formatter(date.getDate());
break;
case 'HH':
return formatter(date.getHours());
break;
case 'ss':
return formatter(date.getSeconds());
break;
}
})
}
調用該js方法將相應值轉換為Date日期類型:
formatTime(changeDate,'yyyy-MM-dd HH:mm:ss')