在jdk1.8中定义日期的时候推荐使用 LocalDateTime 来定义日期格式 就像下面这样,
private LocalDateTime createTime;
生成的日期格式却不是我们经常用的yyyy-MM-dd HH:mm:ss 而是这样的2021-12-02T17:29:29.009 这就需要把时间给弄成我们方便看的样子
测试代码
@Test
public void timeFom(){
System.out.println(LocalDateTime.now());
}
输出

下面推荐两种格式化方案
第一种:使用注解来格式化日期,就像下面这样
import com.fasterxml.jackson.annotation.JsonFormat;
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDateTime createTime;
这样做的一个弊端就是,需要在每个时间字段上都加上这个注解,太过繁琐,当然要是实体不多的话,用这个也是不错的方法
第二种:就是使用配置文件的方式,去配置时间格式,就像下面这样,这样在我们使用LocalDateTime这个时间类型的时候就会自动的去帮我们把时间给格式化成yyyy-MM-dd HH:mm:ss的样子。
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
@Configuration
public class LocalDateTimeSerializerConfig {
@Value("${spring.jackson.date-format:yyyy-MM-dd HH:mm:ss}")
private String pattern;
public LocalDateTimeSerializer localDateTimeDeserializer() {
return new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(pattern));
}
@Bean
public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
return builder -> builder.serializerByType(LocalDateTime.class, localDateTimeDeserializer());
}
}
2万+

被折叠的 条评论
为什么被折叠?



