怎么在SpringBoot中配置一个全局日期格式转换器

  介绍

这期内容当中小编将会给大家带来有关怎么在SpringBoot中配置一个全局日期格式转换器,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

1。SpringBoot设置后台向前台传递日期日期格式

在SpringBoot应用中,<代码> @RestController 注解的json默认序列化中,日期格式默认为:<代码> 2020 - 12 - 03 - t15:12:26.000 + 00:00>

怎么在SpringBoot中配置一个全局日期格式转换器

在实际显示中,我们需要对其转换成我们需要的显示格式。

1.1方式1:配置文件修改

配置文件配置<代码>应用程序。yml :

春:   ,#配置日期格式化   杰克逊,:   ,日期格式:yyyy-MM-dd  HH: mm: ss  #时间戳统一转换为指定格式   格林尼治时间,时区:+ 8,#,时区修改为东8区

<代码>应用程序。属性> spring.jackson.date-format=yyyy-MM-dd  HH: mm: ss #时间戳统一转换为指定格式   spring.jackson。时区=GMT + 8 #,时区修改为东8区

【注意】这里需要修改时区<代码>时区>

1.2方式2:在javabean实体类上加注解

,我。<代码> @JsonFormat 注解

<代码> @JsonFormat 注解用于属性或方法上,将<代码> 日期类型转换为我们需要的类型显示。

//在模式上设置自己需要的格式   @JsonFormat(模式=皔yyy-MM-dd  HH: mm: ss")   private  Date  createTime;

二世。<代码> @DateTimeFormat 注解

在需要进行日期格式转换的日期属性上添加注解<代码> @DateTimeFormat(模式=靶枰坏母袷健?

//注解将yyyy-MM-dd的形式转换为日期数据   ,@DateTimeFormat (=pattern “yyyy-MM-dd  HH: mm: ss")   ,private  Date 生日;

三世。<代码> @Temporal 注解

通过@Temporal注解,实现日期格式转换,它自带属性参数,比如:


@Temporal注解参数作用TemporalType.DATE@Temporal (TemporalType.DATE),会得到yyyy-MM-dd格式的日期形式.TemporalType.TIME@Temporal (TemporalType.TIME),会得到HH: MM: SS格式的时间形式.TemporalType.TIMESTAMP@Temporal (TemporalType.TIMESTAMP),会得到yyyy-MM-dd HH: MM: SS格式的日期时间形式。 @Temporal (TemporalType.TIMESTAMP)   private  Date  createTime;

2。SpringBoot配置全局日期格式转换器

配置从页面接收的字符串和json格式的日期转换为日期类型。

2.1配置字符串类型表单传参转日期的转换器

import  org.springframework.core.convert.converter.Converter;   import  org.springframework.stereotype.Component;   import  org.springframework.util.StringUtils;   import  java.text.DateFormat;   import  java.text.SimpleDateFormat;   import  java.util.ArrayList;   import  java.util.Date;   import 并不知道;//Converter,学生:,代表的是源,将要转换的数据类型,T:目标类型,将会转成什么数据类型   @ component   public  class  GlobalFormDateConvert  implements  Converter<字符串,,Date>, {      ,//静态初始化定义日期字符串参数列表(需要转换的)   ,private  static  final  List< String>, paramList =, new  ArrayList<在();      ,//静态初始化可能初夏你的日期格式   ,private  static  final  String  param1 =,“yyyy-MM";   ,private  static  final  String  param2 =,“yyyy-MM-dd";   ,private  static  final  String  param3 =,“yyyy-MM-dd  HH: mm";   ,private  static  final  String  param4 =,“yyyy-MM-dd  HH: mm: ss";      ,//静态代码块,将日期参数加入到列表中   ,static  {   paramList.add才能(param1);   paramList.add才能(param2);   paramList.add才能(param3);   paramList.add才能(param4);   ,}      ,//自定义函数,将字符串转Date 参1:传入的日期字符串,参2:格式参数   ,public  Date  parseDate (String 源,String 格式),{   System.out.println才能(“parseDate转换日期“);   Date 才能;Date =,空;   try {才能   ,,//日期格式转换器   ,,DateFormat  DateFormat =, new  SimpleDateFormat(格式);   ,,date =, dateFormat.parse(源);   ,,},catch  (Exception  e), {   ,,e.printStackTrace ();   ,,}   return 才能;日期;   ,}         ,//转换转换方法,s是将会传递过来的日期的字符串   ,@Override   ,public  Date 转换(String 源),{      System.out.println才能(“转换日期格式转换器“);   如果才能(StringUtils.isEmpty(源)){   ,,return 零;   ,,}   时间=source 才能;source.trim();,//去除首尾空格   DateFormat 才能;DateFormat =, new  SimpleDateFormat (param1);//正才能则表达式判断是哪一种格式参数   if 才能;(source.matches (“^ \ \ d {4} - \ \ d{1,2}“美元)),{   ,,return  parseDate(来源,,paramList.get (0));   ,,},else  if  (source.matches (“^ \ \ d {4} - \ \ d {1,2} - \ \ d{1,2}“美元)),{   ,,return  parseDate(来源,,paramList.get (1));   ,,},else  if  (source.matches (“^ \ \ d {4} - \ \ d {1,2} - \ \ d {1,2}, {1} \ \ d {1,2}: \ \ d{1,2}“美元)),{   ,,return  parseDate(来源,,paramList.get (2));   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

怎么在SpringBoot中配置一个全局日期格式转换器