美文网首页Spring Boot
Spring WebFlux时间格式化设置

Spring WebFlux时间格式化设置

作者: EasyNetCN | 来源:发表于2023-08-14 08:30 被阅读0次
    import java.text.SimpleDateFormat;
    import java.time.LocalDate;
    import java.time.LocalDateTime;
    import java.time.LocalTime;
    import java.time.format.DateTimeFormatter;
    import java.util.Date;
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.context.annotation.Primary;
    import org.springframework.http.codec.ServerCodecConfigurer;
    import org.springframework.http.codec.json.Jackson2JsonDecoder;
    import org.springframework.http.codec.json.Jackson2JsonEncoder;
    import org.springframework.web.reactive.config.WebFluxConfigurer;
    
    import com.fasterxml.jackson.annotation.JsonInclude;
    import com.fasterxml.jackson.databind.ObjectMapper;
    import com.fasterxml.jackson.databind.ser.std.DateSerializer;
    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 com.fasterxml.jackson.module.paramnames.ParameterNamesModule;
    
    @Configuration
    public class WebMvcConfig implements WebFluxConfigurer {
        @Bean
        @Primary
        ObjectMapper mapper() {
            var mapper = new ObjectMapper();
            var timeModule = new JavaTimeModule();
    
            timeModule.addSerializer(Date.class,
                    new DateSerializer(Boolean.FALSE, new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")));
            timeModule.addSerializer(LocalDateTime.class,
                    new LocalDateTimeSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
            timeModule.addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
            timeModule.addSerializer(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern("HH:mm:ss")));
    
            timeModule.addDeserializer(LocalDateTime.class,
                    new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
            timeModule.addDeserializer(LocalDate.class,
                    new LocalDateDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
            timeModule.addDeserializer(LocalTime.class, new LocalTimeDeserializer(DateTimeFormatter.ofPattern("HH:mm:ss")));
    
            mapper.setDefaultPropertyInclusion(JsonInclude.Include.NON_NULL);
    
            mapper.registerModule(timeModule).registerModule(new ParameterNamesModule())
                    .registerModules(ObjectMapper.findModules());
    
            return mapper;
        }
    
        @Override
        public void configureHttpMessageCodecs(ServerCodecConfigurer configurer) {
            var mapper = mapper();
    
            configurer.defaultCodecs().jackson2JsonEncoder(new Jackson2JsonEncoder(mapper));
            configurer.defaultCodecs().jackson2JsonDecoder(new Jackson2JsonDecoder(mapper));
        }
    }
    

    相关文章

      网友评论

        本文标题:Spring WebFlux时间格式化设置

        本文链接:https://www.haomeiwen.com/subject/xwnqmdtx.html