java日期时间格式化@JsonFormat与@DateTimeFormat的使用

 更新时间:2022年08月17日 15:47:20   作者:yujkss  
本文主要介绍了java日期时间格式化@JsonFormat与@DateTimeFormat的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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

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

<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.12.3</version>
</dependency>

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

<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.3.9</version>
</dependency>

大家可以去这个网站搜索想要的依赖: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;

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

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

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;

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

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

到此这篇关于java日期时间格式化@JsonFormat与@DateTimeFormat的使用的文章就介绍到这了,更多相关java @JsonFormat与@DateTimeFormat内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • springboot下添加全局异常处理和自定义异常处理的过程解析

    springboot下添加全局异常处理和自定义异常处理的过程解析

    在spring项目中,优雅处理异常,好处是可以将系统产生的全部异常统一捕获处理,自定义的异常也由全局异常来捕获,如果涉及到validator参数校验器使用全局异常捕获也是较为方便,这篇文章主要介绍了springboot下添加全局异常处理和自定义异常处理,需要的朋友可以参考下
    2023-12-12
  • EL调用Java方法_动力节点Java学院整理

    EL调用Java方法_动力节点Java学院整理

    简单来说,我们在一个类中的某个方法,可以使用EL进行调用,这个能被EL表达式调用的方法称之为EL函数,但是这种方式必须满足两点要求,具体哪两点,大家可以参考下本文
    2017-07-07
  • java ArrayList的深拷贝与浅拷贝问题

    java ArrayList的深拷贝与浅拷贝问题

    这篇文章主要介绍了java ArrayList的深拷贝与浅拷贝问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • Java语法糖之个数可变的形参的实现

    Java语法糖之个数可变的形参的实现

    这篇文章主要介绍了Java语法糖之个数可变的形参的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • 基于Lombok集成springboot遇到的坑

    基于Lombok集成springboot遇到的坑

    这篇文章主要介绍了Lombok集成springboot遇到的坑,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Java数据结构之散列表详解

    Java数据结构之散列表详解

    散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。本文将为大家具体介绍一下散列表的原理及其代码实现
    2022-01-01
  • redis做服务间通信工具的项目示例

    redis做服务间通信工具的项目示例

    Redis是一种高效的服务间通信工具,它以键值对的形式存储数据,并支持多种数据类型和丰富的操作,本文主要介绍了redis做服务间通信工具的项目示例,感兴趣的可以了解一下
    2023-08-08
  • Java中如何正确定义字符串

    Java中如何正确定义字符串

    这篇文章主要给大家介绍了关于Java中如何正确定义字符串的相关资料,在Java中定义一个字符串最简单的方法是用双引号把它包围起来,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-10-10
  • IDEA错误:找不到或无法加载主类的完美解决方法

    IDEA错误:找不到或无法加载主类的完美解决方法

    使用IDEA开始就一直在搭建java环境,许久没有使用过java,刚开始有些生疏,先建了一个最简单的类可是运行的时候出现错误:找不到或无法加载主类,下面这篇文章主要给大家介绍了关于IDEA错误:找不到或无法加载主类的完美解决方法,需要的朋友可以参考下
    2022-07-07
  • 使用Thrift实现跨语言RPC的调用

    使用Thrift实现跨语言RPC的调用

    Thrift最大的优势就是可以实现跨语言RPC调用,尤其在一些大厂,微服务各模块之间使用不同的语言是很常见的,本文就将使用java作为服务端,用python作为客户端,实现不同语言之间的RPC调用,需要的可以参考下
    2023-10-10

最新评论