zoukankan      html  css  js  c++  java
  • 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;
        }
    
    }
  • 相关阅读:
    IntelliJ IDEA 14.03 java 中文文本处理中的编码格式设置
    应聘感悟
    STL string分析
    CUDA SDK VolumeRender 分析 (1)
    BSP
    CUDA SDK VolumeRender 分析 (3)
    CUDA SDK VolumeRender 分析 (2)
    Windows软件发布时遇到的一些问题
    Ten Commandments of Egoless Programming (转载)
    复习下光照知识
  • 原文地址:https://www.cnblogs.com/longyao/p/11720141.html
Copyright © 2011-2022 走看看