Springboot 格式化LocalDateTime的方法
Springboot 格式化LocalDateTime
我們知道在springboot中有默認的json解析器,Spring Boot 中默認使用的 Json 解析技術框架是 jackson。我們點開 pom.xml 中的 spring-boot-starter-web 依賴,可以看到一個 spring-boot-starter-json依賴:
引入依賴
其實引不引入這個依賴都一樣 spring-boot-starter-web 裡面就包含這個依賴
就是為瞭讓你們理解是這個依賴在發揮作用
<!--而該模塊JSR310支持到瞭時間類型的序列化、反序列化--> <dependency> <groupId>com.fasterxml.jackson.datatype</groupId> <artifactId>jackson-datatype-jsr310</artifactId> </dependency>
配置全局生效
-
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(value = "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") private 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;
常用場景
我們一般會配置全局解析的規則 這樣方便後續對於時間格式的處理 默認的格式 按照國人的喜好 不太方便 對於後面日期格式個性的要求 我們可以針對某個屬性去設置解析規則
到此這篇關於Springboot 格式化LocalDateTime的文章就介紹到這瞭,更多相關Springboot 格式化內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- mybatis-plus IdWorker生成的Id和返回給前臺的不一致的解決
- Springboot 全局時間格式化操作
- SpringBoot全局配置long轉String丟失精度的問題解決
- SpringBoot利用jackson格式化時間的三種方法
- Mybatis-Plus自動填充更新操作相關字段的實現