需要在maven中添加依賴:
<!--LocalDateTime-->
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-typehandlers-jsr310</artifactId>
<version>1.0.2</version>
</dependency>
添加配置文件
??springboot或spring自定義jackson的MapperObject對象淋叶,spring也可以通過xml配置的方式加入jackson配置慨默。
@Configuration
public class JacksonConfig {
@Bean(name = "mapperObject")
public ObjectMapper getObjectMapper() {
ObjectMapper om = new ObjectMapper();
JavaTimeModule javaTimeModule = new JavaTimeModule();
javaTimeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
javaTimeModule.addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
javaTimeModule.addSerializer(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern("HH:mm:ss")));
javaTimeModule.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
javaTimeModule.addDeserializer(LocalDate.class, new LocalDateDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
javaTimeModule.addDeserializer(LocalTime.class, new LocalTimeDeserializer(DateTimeFormatter.ofPattern("HH:mm:ss")));
om.registerModule(javaTimeModule);
return om;
}
}
??SpringMVC使用@RequestBody钠至、@ResponseBody、@RestController注解時劲件,會使用自定義的MapperObject對象進(jìn)行json到LocalDate锣枝、LocalTime唇撬、LocalDateTime對象轉(zhuǎn)換墩弯。
??Mybatis通過通過mybatis-typehandlers-jsr310來把LocalDate省骂、LocalTime、LocalDateTime映射到數(shù)據(jù)庫的date最住、timestamp、datetime等字段怠惶。
??如果SpringMVC接受的不是json參數(shù)涨缚,則要使用@DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)注解來轉(zhuǎn)換LocalDateTime
@PostMapping("/test1")
public void test1(@RequestParam @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime localDateTime ) {
}
@PostMapping("/test2")
public void test2(@RequestParam @DateTimeFormat(iso = "dd.MM.yyyy") LocalDate localDate ) {
}