方式1:实体类上加上 @JsonFormat,并通过 pattern 属性指定时间格式
- public class Time {
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- LocalDateTime localDateTime;
-
- @JsonFormat(pattern = "yyyy-MM-dd")
- LocalDate localDate;
-
- @JsonFormat(pattern = "HH:mm:ss")
- LocalTime localTime;
- }
方式二:配置Jackson时间序列化,创建如下配置类即可
- import com.fasterxml.jackson.databind.ObjectMapper;
- import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
- import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
- import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
- import com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer;
- import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
- import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
- import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import java.time.LocalDate;
- import java.time.LocalDateTime;
- import java.time.LocalTime;
- import java.time.format.DateTimeFormatter;
-
- @Configuration
- public class JacksonConfig {
-
- @Bean
- public ObjectMapper 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")));
-
- ObjectMapper objectMapper = new ObjectMapper();
- objectMapper.registerModule(javaTimeModule);
- return objectMapper;
- }
- }
方式1:在参数前面加上 @DateTimeFormat 注解,通过 pattern 属性指定时间格式
- @GetMapping("/param/local")
- public void testLocalDateTime(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime localDateTime,
- @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate localDate,
- @RequestParam @DateTimeFormat(pattern = "HH:mm:ss") LocalTime localTime) {
-
- }
方式2:配置时间格式转换器,创建如下配置类即可
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.core.convert.converter.Converter;
- import java.time.LocalDate;
- import java.time.LocalDateTime;
- import java.time.LocalTime;
- import java.time.format.DateTimeFormatter;
-
- /**
- * 日期格式转换器配置
- */
- @Configuration
- public class DateConverterConfig {
-
- /**
- * LocalDateTime格式转换器
- */
- @Bean
- public Converter
localDateTimeConverter() { - return new Converter
() { - @Override
- public LocalDateTime convert(String timeStr) {
- return LocalDateTime.parse(timeStr,DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
- }
- };
- }
-
-
- /**
- * LocalDate格式转换器
- */
- @Bean
- public Converter
localDateConverter() { - return new Converter
() { - @Override
- public LocalDate convert(String timeStr) {
- return LocalDate.parse(timeStr,DateTimeFormatter.ofPattern("yyyy-MM-dd"));
- }
- };
- }
-
- /**
- * LocalTime格式转换器
- */
- @Bean
- public Converter
localTimeConverter() { - return new Converter
() { - @Override
- public LocalTime convert(String timeStr) {
- return LocalTime.parse(timeStr,DateTimeFormatter.ofPattern("HH:mm:ss"));
- }
- };
- }
- }