• 日期时间格式化 @JsonFormat与@DateTimeFormat


    如果要使用 @JsonFormat 这个注解的话,需要在项目中添加 jackson 相关的依赖包;
    因为 @JsonFormat 注解不是 Spring 自带的注解,所以使用该注解前需要添加 jackson 相关的依赖包。当然,如果是 SpringBoot 项目就不需要自己手动添加依赖了,因为在 spring-boot-start-web 下已经包含了 jackson 相关依赖
    在这里插入图片描述

    
    <dependency>
        <groupId>com.fasterxml.jackson.coregroupId>
        <artifactId>jackson-databindartifactId>
        <version>2.12.3version>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    如果要使用 @DateTimeFormat 这个注解的话,需要在项目中添加 springframework 相关的依赖包

    
    <dependency>
        <groupId>org.springframeworkgroupId>
        <artifactId>spring-contextartifactId>
        <version>5.3.9version>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    大家可以去这个网站搜索想要的依赖:https://mvnrepository.com

    @JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”,timezone = “GMT+8”)
    将后端返回给前端的日期时间进行格式化,pattern为转换后的格式,timezone为日期时间的时区
    默认情况下timeZone为GMT(即标准时区),而北京是在东八区,所以会造成差8小时
    提示:@JsonFormat注解可以在属性的上方,同样可以在属性对应的get方法上,两种方式没有区别

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime userCreateDate;
    
    • 1
    • 2

    @DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)
    将前端传给后端的日期时间进行格式化,pattern为转换后的格式

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime userCreateDate;
    
    • 1
    • 2

    POST请求,我们一般会用@RequestBody接收JSON对象,如果对象里面有日期时间类型数据的话,我们可以使用 @JsonFormat注解进行格式化,它既可以对出参进行格式化,也可以对入参进行格式化

    GET请求参数都是拼接在URL后面的,则需要使用@DateTimeFormat对入参进行格式化,放到@RequestBody修饰的对象里面是无效的

    @JsonFormat是格式化json格式的。
    @DateTimeFormat是格式化 key=value 这种格式的。

    需要取数据到前台,也需要前台数据传到后台,都需要进行时间格式的转换,可以同时使用

      @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
      @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
      private Date symstarttime;
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    SpringBoot的配置文件

    application.yml

    spring:
      # Content-Type 为 application/json, @JsonFormat(优先级高) 或 spring.jackson.date-format
      jackson:
        date-format: yyyy-MM-dd HH:mm:ss
        time-zone: GMT+8
      # Content-Type 为 application/x-www-form-urlencoded(普通表单上传)spring.mvc.date-format(优先级高) 或 @DatetimeFormat
      mvc:
        format:
          date-time: yyyy-MM-dd HH:mm:ss
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    application.properties

    spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
    spring.jackson.time-zone=GMT+8
    spring.jackson.serialization.indent_output=true
    spring.jackson.serialization.fail_on_empty_beans=false
    
    • 1
    • 2
    • 3
    • 4
  • 相关阅读:
    经济管理专业必备的15种国内数据库推荐
    【算法】二分相关题目
    揭开ChatGPT面纱(2):OpenAI主类源码概览
    C++面试八股(一)
    AutoHotkey ---- 统一所有软件的快捷键(分析篇)
    【ArcGIS Pro微课1000例】0060:制作移动地图包mmpk
    “蔚来杯“2022牛客暑期多校训练营2
    大模型会毁了初级程序员 —— 对话图灵奖得主 Joseph Sifakis | 新程序员
    音视频进阶教程-实现直播SEI补充增强信息
    APS计划排程结果的量化评价
  • 原文地址:https://blog.csdn.net/qq_39900031/article/details/126376519