<i id="d2xhp"></i>

      <font id="d2xhp"></font>
      <optgroup id="d2xhp"><del id="d2xhp"></del></optgroup>
        
        

            <i id="d2xhp"></i>

              <i id="d2xhp"><option id="d2xhp"></option></i>
              <i id="d2xhp"></i>
              <thead id="d2xhp"></thead>
              <object id="d2xhp"><option id="d2xhp"></option></object>

                spring mvc入参有Date类型

                spring mvc 对日期支持不太好,如果请求类型有Date类型的话,需要做一个日期转换器,代码

                /**
                 * 全局handler前日期统一处理
                 */
                @Component
                public class GlobalDateConverter 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) {
                            e.printStackTrace();
                            throw new ParameterErrorException("日期解析错误");
                        }
                        return date;
                    }
                
                }
                相关文章
                相关标签/搜索
                黄大仙心水高手免费资料