赞
踩
第1种:使用
@DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)
注解在实体字段上,
这种方式的优点是:可以灵活的定义接收的类型
缺点很明显:不能全局统一处理,需要为每个需要转换字段都加注解太麻烦
第2种:写一个BaseController,每一个需要处理的controller继承这个BaseController,在BaseController里使用@InitBinder写一个全局转换日期方法:
- @InitBinder
- public void initBinder(ServletRequestDataBinder binder) {
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
- binder.registerCustomEditor(Date.class, new CustomDateEditor(sdf, true));
- }
这种方式的优点是:可以全局统一处理,不用再关注具体需要转换的日期字段
缺点就是:只能定义一种日期类型,我定义了”yyyy-MM-dd”就没法定义”yyyy-MM-dd HH:mm:ss”,
如果我前台不同页面过来的日期格式不一样就不好办了
第3种:自定义DateConverterConfig实现一下spring提供的Converter,重写里面的convert方法:
- /**
- * 全局handler前日期统一处理
- * @author zhanghang
- * @date 2018/1/11
- */
- @Component
- public class DateConverterConfig implements Converter<String, Date> {
-
- private static final List<String> formarts = new ArrayList<>(4);
- static{
- formarts.add("yyyy-MM");
- formarts.add("yyyy-MM-dd");
- formarts.add("yyyy-MM-dd hh:mm");
- formarts.add("yyyy-MM-dd hh:mm:ss");
- }
-
- @Override
- public Date convert(String source) {
- String value = source.trim();
- if ("".equals(value)) {
- return null;
- }
- if(source.matches("^\\d{4}-\\d{1,2}$")){
- return parseDate(source, formarts.get(0));
- }else if(source.matches("^\\d{4}-\\d{1,2}-\\d{1,2}$")){
- return parseDate(source, formarts.get(1));
- }else if(source.matches("^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}$")){
- return parseDate(source, formarts.get(2));
- }else if(source.matches("^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}:\\d{1,2}$")){
- return parseDate(source, formarts.get(3));
- }else {
- throw new IllegalArgumentException("Invalid boolean value '" + source + "'");
- }
- }
-
- /**
- * 格式化日期
- * @param dateStr String 字符型日期
- * @param format String 格式
- * @return Date 日期
- */
- public Date parseDate(String dateStr, String format) {
- Date date=null;
- try {
- DateFormat dateFormat = new SimpleDateFormat(format);
- date = dateFormat.parse(dateStr);
- } catch (Exception e) {
-
- }
- return date;
- }
-
- }
原文链接:https://blog.csdn.net/eumenides_/article/details/79033505
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。