先鸡汤一波,平时不注意,欠的债总还是要还的,换工作了,自己写个项目,居然不知道他俩的区别。
注解@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")是后台到前台的时间格式的转换
注解@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")主要是前后到后台的时间格式的转换
缺@DateTimeFormat的报错信息:
2021-10-27 10:23:25.783 WARN 10272 --- [io-9754-exec-12] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 2 errors
Field error in object 'receiptTaskDO' on field 'receiptBeginDate': rejected value [2021-10-12T16:00:00.000Z]; codes [typeMismatch.receiptTaskDO.receiptBeginDate,typeMismatch.receiptBeginDate,typeMismatch.java.util.Date,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [receiptTaskDO.receiptBeginDate,receiptBeginDate]; arguments []; default message [receiptBeginDate]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date' for property 'receiptBeginDate'; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [@com.fasterxml.jackson.annotation.JsonFormat @org.springframework.format.annotation.DateTimeFormat java.util.Date] for value '2021-10-12T16:00:00.000Z'; nested exception is java.lang.IllegalArgumentException: Invalid format: "2021-10-12T16:00:00.000Z" is malformed at "T16:00:00.000Z"]
日期格式化:
formatDateTime(inputTime){
if(!inputTime && typeof inputTime !== 'number'){
return '';
}
var localTime = '';
inputTime = new Date(inputTime).getTime();
const offset = (new Date()).getTimezoneOffset();
localTime = (new Date(inputTime - offset * 60000)).toISOString();
localTime = localTime.substr(0, localTime.lastIndexOf('.'));
localTime = localTime.replace('T', ' ');
return localTime;
},