将x年或x年x月或x年x月x日等字符串转化成日期类型存储到数据库

//将年月日字符串转换成具体的年月日
    public static Date StringToDate(String dateStr) {
        if (StringUtils.isEmpty(dateStr)) {
            throw new SelfDefinitionException(20001, "日期不能为空,添加失败!");
        }
        Date parse = new Date();
        ParsePosition pos = new ParsePosition(0);
        if (dateStr.contains("日")) {
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日");
            parse = simpleDateFormat.parse(dateStr, pos);
        } else if (dateStr.contains("月")) {
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月");
            parse = simpleDateFormat.parse(dateStr, pos);
        } else if (dateStr.contains("年")) {
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年");
            parse = simpleDateFormat.parse(dateStr, pos);
        }
        if (parse == null) {
            throw new SelfDefinitionException(20001, "故障时间填写不规范!");
        }
        return parse;
    }

这个可以写成工具类的形式,进行使用,此外以上的代码可能会得到为null 的情况,即传入的字符串参数不为空,并且不是规则的日期类型,比如不是下面的形式:x年、x年x月、x年x月x日

以上就是将字符串转换成日期形式的代码,希望对你有帮助,此外如果要存入数据库的date类型,可能中间还要进行一次日期格式转换,使用代码:

faultInfo.setFaultTime(new java.sql.Date(date.getTime()));

 

posted @ 2022-11-20 10:17  smile008  阅读(107)  评论(0编辑  收藏  举报