1. 格式化 LocalDateTime – @RequestBody
- 编辑配置类
@Configuration
public class JackConfig {private static String DATE_TIME_PATTERN = "yyyy-MM-dd HH:mm:ss";@Beanpublic Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {return builder -> {builder.serializerByType(Long.class, ToStringSerializer.instance);builder.serializerByType(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(DATE_TIME_PATTERN)));builder.deserializerByType(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(DATE_TIME_PATTERN)));builder.simpleDateFormat(DATE_TIME_PATTERN);builder.timeZone("GMT+8");builder.serializationInclusion(JsonInclude.Include.NON_NULL);};}
}
2. 格式化LocalDateTime – @RequestParam
- 编写LocalDateTimeEditor
public class LocalDateTimeEditor extends PropertyEditorSupport {public DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");@Overridepublic String getAsText() {return super.getAsText();}@Overridepublic void setAsText(String text) throws IllegalArgumentException {LocalDateTime dateTime = LocalDateTime.parse(text, formatter);setValue(dateTime);}
}
2.使用InitBinder 全局处理LocalDateTime类型
@RestControllerAdvice
public class GlobalController {@InitBinderpublic void initBinder(WebDataBinder binder) {binder.registerCustomEditor(String.class, new StringTrimmerEditor(false));binder.registerCustomEditor(LocalDateTime.class, new LocalDateTimeEditor());}
}