Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date' for property 'endTime';

发布时间 2023-12-16 16:46:26作者: 党王

后端springboot项目使用getMapper接受,字段写了转换注解

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")

还报错Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date' for property 'endTime'; 

import org.springframework.context.annotation.Configuration;
import org.springframework.format.FormatterRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Override
    public void addFormatters(FormatterRegistry registry) {
        registry.addConverter(String.class, Date.class, source -> {
            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());
            formatter.setTimeZone(TimeZone.getTimeZone("GMT+8")); // 设置时区
            try {
                return formatter.parse(source);
            } catch (ParseException e) {
                throw new IllegalArgumentException("Invalid date format. Please use this pattern\"yyyy-MM-dd HH:mm:ss\"");
            }
        });
    }
}