下面就为您详细讲解“springboot全局日期格式化的两种方式”的攻略:
方式一:使用配置类
- 首先在项目中新建一个配置类,例如MyConfig类。
- 在MyConfig类中,使用
@Configuration
注解来标识这是一个配置类。 - 在MyConfig类中,使用
@Bean
注解来将日期格式化器加入到Spring容器中。 - 在日期格式化器的
Formatter#parse()
和Formatter#print()
方法中,分别使用SimpleDateFormat
来进行格式化或解析。
下面是示例代码:
@Configuration
public class MyConfig {
@Bean
public Formatter<Date> dateFormatter() {
return new Formatter<Date>() {
@Override
public Date parse(String text, Locale locale) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sdf.parse(text);
}
@Override
public String print(Date date, Locale locale) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sdf.format(date);
}
};
}
}
方式二:使用application.properties文件
- 在
application.properties
或application.yml
中,添加全局日期格式化的配置项。 - 全局日期格式化的配置项的格式为
spring.mvc.format.date=yyyy-MM-dd HH:mm:ss
,其中yyyy-MM-dd HH:mm:ss
即为所设置的日期格式。
下面是示例代码:
spring.mvc.format.date=yyyy-MM-dd HH:mm:ss
spring:
mvc:
format:
date: yyyy-MM-dd HH:mm:ss
至此,就完成了springboot全局日期格式化的两种方式的攻略了。
下面为您提供两个使用示例:
示例1:使用自定义日期格式化的model属性传参
@RestController
public class UserController {
@GetMapping("/users/{id}")
public User getUser(@PathVariable int id, @RequestParam(value = "birthday") Date birthday) {
User user = new User();
user.setId(id);
user.setBirthday(birthday);
return user;
}
}
如上代码所示,可以通过在@RequestParam
中设置日期格式,配合使用@DateTimeFormat(pattern = "yyyy/MM/dd HH:mm")
注解来进行自定义日期格式化。而全局日期格式化的配置,在这种情况下也是同样生效的。
示例2:使用自定义日期格式化的表单数据传参
<form action="/users" method="post">
<p>
姓名:<input type="text" name="name"/>
</p>
<p>
生日:<input type="text" name="birthday" value="2019-12-31 12:00:00"/>
</p>
<button type="submit">提交</button>
</form>
@RestController
public class UserController {
@PostMapping("/users")
public User addUser(User user) {
return user;
}
}
如上代码所示,可以通过在表单中设置日期格式,配合使用全局日期格式化的配置来进行自定义日期格式化。而在这种情况下,直接将数据绑定到实体类的属性中,即可完成自动日期格式化。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:springboot全局日期格式化的两种方式 - Python技术站