| | |
| | | import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; |
| | | import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer; |
| | | import org.springframework.context.annotation.Bean; |
| | | import org.springframework.core.convert.converter.Converter; |
| | | |
| | | import java.time.LocalDate; |
| | | import java.time.LocalDateTime; |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.util.TimeZone; |
| | |
| | | builder.serializerByType(Long.class, ToStringSerializer.instance); |
| | | }; |
| | | } |
| | | |
| | | /** |
| | | * string转localdate |
| | | */ |
| | | //@Bean |
| | | public Converter<String, LocalDate> localDateConverter() { |
| | | return new Converter<String, LocalDate>() { |
| | | @Override |
| | | public LocalDate convert(String source) { |
| | | if (source.trim().length() == 0) { |
| | | return null; |
| | | } |
| | | try { |
| | | return LocalDate.parse(source); |
| | | } catch (Exception e) { |
| | | return LocalDate.parse(source, DateTimeFormatter.ofPattern(DATE_PATTERN)); |
| | | } |
| | | } |
| | | }; |
| | | } |
| | | |
| | | /** |
| | | * string转localdatetime |
| | | */ |
| | | //@Bean |
| | | public Converter<String, LocalDateTime> localDateTimeConverter() { |
| | | return new Converter<String, LocalDateTime>() { |
| | | @Override |
| | | public LocalDateTime convert(String source) { |
| | | if (source.trim().length() == 0) { |
| | | return null; |
| | | } |
| | | // 先尝试ISO格式: 2019-07-15T16:00:00 |
| | | try { |
| | | return LocalDateTime.parse(source); |
| | | } catch (Exception e) { |
| | | return LocalDateTime.parse(source, |
| | | DateTimeFormatter.ofPattern(DATE_TIME_PATTERN)); |
| | | } |
| | | } |
| | | }; |
| | | } |
| | | /** |
| | | * 统一配置 |
| | | */ |
| | | @Bean |
| | | //@Bean |
| | | public Jackson2ObjectMapperBuilderCustomizer jsonCustomizer() { |
| | | JavaTimeModule module = new JavaTimeModule(); |
| | | LocalDateTimeDeserializer localDateTimeDeserializer = new LocalDateTimeDeserializer( |