一.局部转换器
1.说明
在作用域比较局限,将实体类的某一属性进行数据转换。
缺点:作用域只能单个实体类的某一属性。
2.写法
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
private Date departureTime; // 出发时间
3.范例
二.属性转换器
1.在前端控制器设置initBinder
//设置类型转换解决方法:属性转换器
@InitBinder//该注解是初始化加载
public void initBinder(WebDataBinder binder){
binder.registerCustomEditor(需要转换类型的字节码文件, new DateStringEditor());
}
2.定义一个继承类
//继承 PropertiesEditor,然后重写setAsText方法
public class DateStringEditor extends PropertiesEditor {
@Override
public void setAsText(String text) throws IllegalArgumentException {
try {
//进行字符串转换为时间,第二参数为格式
Date date = DateUtils.stringToDate(text, "yyyy-MM-dd HH:mm");
//调用父类方法,将时间对象返回
super.setValue(date);
} catch (ParseException e) {
e.printStackTrace();
}
}
}
3.定义一个工具类
/**
* 日期转换类
*/
public class DateUtils {
//定义日期转换字符串
public static String dataToString(Date date, String patt){
//转换为字符串形式,patt是格式
SimpleDateFormat sdf = new SimpleDateFormat(patt);
String new_date = sdf.format(date);
return new_date;
}
//定义字符串转换日期
public static Date stringToDate(String old_date,String patt) throws ParseException {
//
SimpleDateFormat sdf = new SimpleDateFormat(patt);
Date new_date = sdf.parse(old_date);
return new_date;
}
}
4.范例
(1)前端控制类
(2)继承类
(3)工具类
三.全局转换器
1.说明
顾名思义,该转换器是全局通用,但是需要配置注解声明。
2.文章内容
https://shimo.im/docs/h9gddXrJ9GRq88cv/ 《自定义类型转换器》,可复制链接后用石墨文档 App 打开