介绍
这期内容当中小编将会给大家带来有关怎么在SpringBoot中配置一个全局日期格式转换器,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
1。SpringBoot设置后台向前台传递日期日期格式
在SpringBoot应用中,<代码> @RestController 代码>注解的json默认序列化中,日期格式默认为:<代码> 2020 - 12 - 03 - t15:12:26.000 + 00:00> 代码类型的显示。
在实际显示中,我们需要对其转换成我们需要的显示格式。
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区
【注意】这里需要修改时区<代码>时区> 代码:数据库默认时区是格林尼治的时间,如果不设置,会比实际时间少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中配置一个全局日期格式转换器