55 lines
2.5 KiB
Java
55 lines
2.5 KiB
Java
package com.cdzy.payment.config;
|
|
|
|
import cn.hutool.core.date.DatePattern;
|
|
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
|
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.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
|
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
|
|
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.ZoneId;
|
|
import java.util.Locale;
|
|
import java.util.TimeZone;
|
|
|
|
/**
|
|
* 日期类型数据处理配置
|
|
* @author attiya
|
|
* @since 2024-11-04
|
|
**/
|
|
@Configuration
|
|
public class JacksonConfig {
|
|
|
|
public static JavaTimeModule buildJavaTimeModule() {
|
|
JavaTimeModule javaTimeModule = new JavaTimeModule();
|
|
javaTimeModule.addSerializer(LocalTime.class, new LocalTimeSerializer(DatePattern.NORM_TIME_FORMATTER));
|
|
javaTimeModule.addSerializer(LocalDate.class, new LocalDateSerializer(DatePattern.NORM_DATE_FORMATTER));
|
|
javaTimeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DatePattern.NORM_DATETIME_FORMATTER));
|
|
|
|
javaTimeModule.addDeserializer(LocalTime.class, new LocalTimeDeserializer(DatePattern.NORM_TIME_FORMATTER));
|
|
javaTimeModule.addDeserializer(LocalDate.class, new LocalDateDeserializer(DatePattern.NORM_DATE_FORMATTER));
|
|
javaTimeModule.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DatePattern.NORM_DATETIME_FORMATTER));
|
|
return javaTimeModule;
|
|
}
|
|
|
|
@Bean
|
|
@ConditionalOnMissingBean
|
|
public Jackson2ObjectMapperBuilderCustomizer customizer() {
|
|
return builder -> {
|
|
builder.locale(Locale.CHINA);
|
|
builder.timeZone(TimeZone.getTimeZone(ZoneId.systemDefault()));
|
|
builder.simpleDateFormat(DatePattern.NORM_DATETIME_PATTERN);
|
|
builder.serializerByType(Long.class, ToStringSerializer.instance);
|
|
builder.modules(buildJavaTimeModule());
|
|
};
|
|
}
|
|
} |