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内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • JS时间戳与日期格式互相转换的简单方法示例

    JS和jQuery用了一段时间,最近发现他们没有自带的时间戳格式化函数,于是综合网上相关的时间戳格式化函数,自己写了一个时间戳格式化函数DateToTime,这个函数提供了多种格式化样式: Y-m-d,Y-m-d H:i:s,Y/m/d,Y/m/d H:i:s,Y年m月d日,Y年m月d日 H:i:s 这里的时间有时仅输入Y-m-d H:i也是可以使用的 /**  * [TimeToDate时间戳转换为日期]  * @param {[type]} unixTime [时间戳]  * @param 

  • JavaScript 实现日期时间转时间戳

    目录 1.date.getTime() 2.date.valueOf() 3.Date.parse(date) 4.时间戳转年月日时分秒 5.当前时间往前推30天.7天.3天 6.获取最近七天日期 1.date.getTime() 2.date.valueOf() 3.Date.parse(date) 第一.第二种:会精确到毫秒 第三种:只能精确到秒,毫秒用000替代 注意:获取到的时间戳除以1000就可获得Unix时间戳,就可传值给后台得到. 4.时间戳转年月日时分秒 // 时间戳转年月日 g

  • js正则格式化日期时间自动补0的两种解法

    目录 背景 解法一 思路: 代码: 解法二 思路: 总结 参考 背景 时间日期格式化的需求很常见,也有很多工具类转换方法,比如需要将2022-3-4这种日期格式转化为2022-03-04,也就是实现个位数月份或天数日期自动前置补 0.用moment.js.dayjs第三方库的 API 也很容易做到,这里我们自己实现一下看看. 解法一 思路: 先来看看常规方案.就用这个2022-3-4日期来举例子,我们先根据-切分字符串,得到一个数组,然后分别识别3.4这种个位数日期,<10就前置补 0,否则不操

  • javascript实现时间日期的格式化的方法汇总

    有的时候,我们需要一定格式的 时间 比如 2017-05-12 08:48 这样的格式. 上代码先 时间格式化 第一种 function formatDate(time){ var date = new Date(time); var year = date.getFullYear(), month = date.getMonth() + 1,//月份是从0开始的 day = date.getDate(), hour = date.getHours(), min = date.getMinute

  • js日期时间格式化的方法实例

    js日期时间格式化 将日期时间转换为指定格式,如:YYYY-mm-dd HH:MM表示2019-06-06 19:45 function dateFormat(fmt, date) { let ret; const opt = { "Y+": date.getFullYear().toString(), // 年 "m+": (date.getMonth() + 1).toString(), // 月 "d+": date.getDate().t

  • moment.js 时间日期处理详解

    周一 至 周日 时间格式化转化 (Y --- 年     M --- 月   D--- 天) var timeNow = new Date()// 当前时间 var weekOfday = moment(timeNow).format('E'); // 计算今天是这周第几天 var nowDay = moment(timeNow).format('YYYY-MM-DD') // 当前日期 var Monday = moment(timeNow).subtract(weekOfday - 1, '

  • JavaScript内置日期、时间格式化时间实例代码

    一.基础知识(date对象的方法)

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

    如果要使用 @JsonFormat 这个注解的话,需要在项目中添加 jackson 相关的依赖包; 因为 @JsonFormat 注解不是 Spring 自带的注解,所以使用该注解前需要添加 jackson 相关的依赖包.当然,如果是 SpringBoot 项目就不需要自己手动添加依赖了,因为在 spring-boot-start-web 下已经包含了 jackson 相关依赖. <!-- https://mvnrepository.com/artifact/com.fasterxml.jack

  • 关于Springboot日期时间格式化处理方式总结

    项目中使用LocalDateTime系列作为DTO中时间的数据类型,但是SpringMVC收到参数后总报错,为了配置全局时间类型转换,尝试了如下处理方式. 注:本文基于Springboot2.x测试,如果无法生效可能是spring版本较低导致的.PS:如果你的Controller中的LocalDate类型的参数啥注解(RequestParam.PathVariable等)都没加,也是会出错的,因为默认情况下,解析这种参数是使用ModelAttributeMethodProcessor进行处理,而

  • 详解Java关于时间格式化的方法

    一般从数据库获取的时间或日期时间格式化为date或者datetime,为了方便前端渲染,API接口返回的时候需要对日期进行格式化转换,通常会用到 SimpleDateFormat 工具处理. SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); String time = dateFormat.format(new Date()); 如果一个DTO类里面有很多关于时间字段需要格式化,就会降低开发效率,产生很多

  • Java日期时间类及计算详解

    目录 1. Java中与日期相关的类 1.1 java.util包 ① Date类 ② Calendar 日历类 roll 设置Calendar的容错性 set 1.2 java.time包 ① LocalDate 本地日期类 ② LocalTime 本地时间类 ③ LocalDateTime 本地日期时间类 ④ Instant 类 ⑤ Period 类 ⑥ Duration 类 2. 时间间隔计算 2.1 Period与Duration类 2.1.1 Duration 2.1.2 Period

  • Java日期时间以及日期相互转换

    Java日期时间,以及相互转化,供大家参考,具体内容如下 package com.study.string; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; public class DateBase { public static voi

  • Java日期时间使用方法汇总

    一.Java中的日期概述 日期在Java中是一块非常复杂的内容,对于一个日期在不同的语言国别环境中,日期的国际化,日期和时间之间的转换,日期的加减运算,日期的展示格式都是非常复杂的问题. 在Java中,操作日期主要涉及到一下几个类:  1.java.util.Date         类 Date 表示特定的瞬间,精确到毫秒.从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和分析日期字符串.Date 中的把日期解释为年.月

  • Java日期时间格式化操作DateUtils 的整理

    Java日期时间格式化操作DateUtils 的整理 直接上代码,总结了开发过程中经常用到的日期时间格式化操作! import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.concurrent.TimeUnit; /** * ClassName: DateUtils <br/> * D

  • java日期时间操作工具类

    本文实例为大家分享了java日期时间操作工具类,供大家参考,具体内容如下 虽然jdk1.8开始,加入了time包,里面对时区,本地化时间,格式化,以及时间等做了很好的封装,但仍然要写一个工具类.大家看着用.应该没有bug.如果发现了,请您一定告知,互相学习!好了,上代码: package com.wdy.tools.utils.timeutil; import java.text.DateFormat; import java.text.SimpleDateFormat; import java

  • Java日期时间及日期相互转换实现代码

    这篇文章主要介绍了Java日期时间及日期相互转换实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 java.util 包提供了 Date 类来封装当前的日期和时间. Date 类提供两个构造函数来实例化 Date 对象. 第一个构造函数使用当前日期和时间来初始化对象. Java日期时间,以及相互转化,供大家参考,具体内容如下 package com.study.string; import java.text.ParseException

  • Java 日期时间工具包–java.time的使用

    从JDK8开始,Java 提供了新的日期时间处理方法用来代替旧的日期类(Date).本章主要讲它们的用法以及和旧日期类互转. 日期和时间 Java 新的日期工具类在 java.time 包及子包中 ,日期类主要有 LocalDateTime.LocalDate.LocalTime ,这三个API类很相似,以下是常用API及说明. now() 静态方法,获取当前时间日期.示例:LocalDateTime.now() of() 静态方法,指定日期时间生成LoalDateTime.示例:LocalDa

随机推荐