• 报错:文字与格式字符串不匹配


    报错如下:

     错误代码:‘

    @Override
        public List<Pxml> selectList(String startTime, String endTime) {
            Example example = new Example(Pxml.class);
            example.createCriteria().andBetween("uploadTime", startTime, endTime).andEqualTo("dealStatus", 0);
            List<Pxml> list = pxmlDao.selectByExample(example);
            return list;
        }

    原因分析:Oracle数据库的UPLOAD_TIME为DATE类型,故需要将string类型转成Date类型。

    修改代码如下:

    public List<Pxml> selectList(String startTime, String endTime) {
            Example example = new Example(Pxml.class);
            example.createCriteria().andBetween("uploadTime", com.ljxx.common.util.DateUtil.parseDate(startTime), com.ljxx.common.util.DateUtil.parseDate(endTime)).andEqualTo("dealStatus", 0);
            List<Pxml> list = pxmlDao.selectByExample(example);
            return list;
        }

    DateUtil工具类如下:

    @Slf4j
    public class DateUtil {
        public static final String LONG_MODEL = "yyyy-MM-dd HH:mm:ss";
        public static final String LONG_MODEL_MS = "yyyy-MM-dd HH:mm:ss.S";
        public static final String LONG3_MODEL = "yyMMddHHmmss";
        public static final String LONG2_MODEL = "yyyy-MM-dd HH:mm";
        public static final String SHORT_MODEL = "yyyy-MM-dd";
        public static final String MONTH_MODEL = "yyyy-MM";
        public static final String TIME_MODEL = "hh:mm:ss";
        public static final String YEAR_MODEL = "yyyy";
    
    
        public static String toStringNoInterval(Date date, int length) {
            SimpleDateFormat formatter = null;
            if (length == 8)
                formatter = new SimpleDateFormat("yyyyMMdd");
            else if (length == 6)
                formatter = new SimpleDateFormat("yyyyMM");
            else if (length == 14)
                formatter = new SimpleDateFormat(LONG3_MODEL);
            else if (length == 17)
                formatter = new SimpleDateFormat("yyyyMMddHHmmssSSS");
            else if (length == 4)
                formatter = new SimpleDateFormat(YEAR_MODEL);
            else
                return date.toString();
            return formatter.format(date);
        }
    
        /**
         * 时间格式化
         *
         * @param d
         * @return
         */
        public static String dateFormat(Date d, String model) {
            if (d == null) {
                return null;
            }
            SimpleDateFormat sdf = new SimpleDateFormat(model);
            return sdf.format(d);
        }
    
        /**
         * 时间格式化
         *
         * @param time
         * @return
         */
        public static String dateFormat(String time, String model) {
            SimpleDateFormat sdf = new SimpleDateFormat(model);
            return sdf.format(cn.hutool.core.date.DateUtil.parse(time));
        }
    
        /**
         * 时间格式化
         * @param d
         * @return
         */
        public static String dateFormatMs(Date d) {
            if (d == null) {
                return null;
            }
            SimpleDateFormat sdf = new SimpleDateFormat(LONG_MODEL_MS);
            return sdf.format(d);
        }
    
        /**
         * 字符串转java.util.date
         * @param date
         * @return
         */
        public static Date parseDate(String date) {
    
            String patterns[] = { "yyyy-MM-dd", "yyyy/MM/dd",
                    "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm:ss.S",
                    "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm:ss.S" };
            try {
                return org.apache.commons.lang3.time.DateUtils.parseDate(date,patterns);
            } catch (ParseException e) {
                log.error("日期格式化失败{}" + date, e);
            }
            return null;
        }
    
        /**
         * 字符串转java.sql.date
         * @param date
         * @return
         */
        public static java.sql.Date parseSqlDate(String date) {
            Date utilDate = parseDate(date);
            if(null != utilDate){
                return new java.sql.Date(utilDate.getTime());
            }
            return null;
        }
    
        //获取一天的开始时间
        public static String beginTime(String startDate){
            return startDate + " 00:00:00";
        }
    
        //获取一天的结束时间
        public static String endTime(String endDate){
            return endDate + " 23:59:59";
        }
    
    
    }

     还有可能的原因是:表中日期类型如PRODUCE_DATE字段的类型与实体类的类型不一致.

  • 相关阅读:
    451. Sort Characters By Frequency
    424. Longest Repeating Character Replacement
    68. Text Justification
    44. Wildcard Matching
    160. Intersection of Two Linked Lists
    24. Swap Nodes in Pairs
    93. 递归实现组合型枚举
    98. 分形之城
    97. 约数之和
    96. 奇怪的汉诺塔
  • 原文地址:https://www.cnblogs.com/zwh0910/p/15476338.html
Copyright © 2020-2023  润新知