Springboot 格式化LocalDateTime的方法

网友投稿 319 2022-07-29


目录Springboot 格式化LocalDateTime引入依赖配置全局生效**实体类 **接口测试结果1 在没有加全局日期格式化配置文件的时候2 加了全局配置类的时候3 指定某个字段解析规则常用场景

Springboot 格式化LocalDateTime

我们知道在springboot中有默认的json解析器,Spring Boot 中默认使用的 Json 解析技术框架是 jackson。我们点开 pom.xml 中的 spring-boot-starter-web 依赖,可以看到一个 spring-boot-starter-json依赖:

引入依赖

其实引不引入这个依赖都一样 spring-boot-starter-web 里面就包含这个依赖

就是为了让你们理解是这个依赖在发挥作用

com.fasterxml.jackson.datatype

jackson-datatype-jsr310

配置全局生效

Configuration 标记这是配置类 @Bean注入到spring容器中 @value 获取参数这里配置的格式化日期格式是全局生效 yyyy-MM-dd HH:mm:ss这里给依赖全路径 方便导包

这里配置的格式化日期格式是全局生效 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() {

// 默认LocalDateTime格式化的格式 yyyy-MM-dd HH:mm:ss

return builder -> builder.serializerByType(LocalDateTime.class, localDateTimeDeserializer());

}

}

**实体类 **

日期类型是 LocalDateTime

@Data

@EqualsAndHashCode(callSuper = false)

@TableName(value = "sg_article")

public class Article implements Serializable {

@TableId(value = "id", type = IdType.AUTO)

private Long id;

/**

* 标题

*/

@TableField(value = "title")

private String title;

/**

* 文章内容

*/

@TableField(value = "content")

private String content;

/**

* 文章摘要

*/

@TableField(vaphpxBlue = "summary")

private String summary;

/**

* 所属分类id

*/

@TableField(value = "category_id")

private Long categoryId;

/**

* 所属分类名称

*/

@TableField(exist = false)

private String categoryName;

/**

* 缩略图

*/

@TableField(value = "thumbnail")

private String thumbnail;

/**

* 是否置顶(0否,1是)

*/

@TableField(value = "is_top")

private String isTop;

/**

* 状态(0已发布,1草稿)

*/

@TableField(value = "status")

private String status;

/**

* 访问量

*/

@TableField(value = "view_count")

private Long viewCount;

/**

* 是否允许评论 1是,0否

*/

@TableField(value = "is_comment")

private String isComment;

@TableField(value = "create_by")

private Long createBy;

@TableField(value = "create_time")

private LocalDateTime createTime;

@TableField(value = "update_by")

private Long updateBy;

@TableField(value = "update_time")

private LocalDateTime updateTime;

/**

* 删除标志(0代表未删除,1代表已删除)

*/

@TableField(value = "del_flag")

pphPxBrivate Integer delFlag;

}

接口测试结果

1 在没有加全局日期格式化配置文件的时候

2 加了全局配置类的时候

yyyy-MM-dd HH:mm:ss

3 指定某个字段解析规则

yyyy-MM-dd

@TableField(value = "create_time")

@JsonFormat(pattern = "yyyy-MM-dd")

private LocalDateTime createTime;

常用场景

我们一般会配置全局解析的规则 这样方便后续对于时间格式的处理 默认的格式 按照国人的喜好 不太方便 对于后面日期格式个性的要求 我们可以针对某个属性去设置解析规则


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:使用@DS轻松解决动态数据源的问题
下一篇:使用Spring AOP实现用户操作日志功能
相关文章

 发表评论

暂时没有评论,来抢沙发吧~