一、背景概述
前端页面输入的是字符串日期,参数传到后端的controller后注入实体类对象的Date类型属性就会出问题,因此需要对前端的日期格式字符串格式化成Date类型;
后端返回实体类对象给前端时,对象中的Date属性也需要格式化成String类型才便于前端展示
本文以springboot开发为背景粘贴代码
二、方式一:使用注解
- 在实体类的Date属性上添加@DateTimeFormat注解和@JsonFormat注解
- @DateTimeFormat是用于前端字符串格式化成后端用的Date类型日期(字符串->Date)
- @JsonFormat注解是用于后端给前端传对象时,Date类型日期变为String类型日期
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
private Date date1;
- 缺点:
- 实体类很多、Date类型属性很多的时候,需要一个个添加注解,麻烦且冗余
三、方式二:使用日期转换器
- 只需要在项目中注册一个日期转换器就能自动完成日期类型的转换
- 实现原理:
- 定义一个集合,包含多种日期的格式化格式
- 使用正则