<strike id="iz7t7"></strike>
    1. <sub id="iz7t7"></sub>
    2. <sub id="iz7t7"><del id="iz7t7"></del></sub>
      1. <blockquote id="iz7t7"></blockquote>

        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;
            }
        
        }
        相关文章
        相关标签/搜索
        刘伯温三肖选一肖