[心缘地方]同学录
首页 | 功能说明 | 站长通知 | 最近更新 | 编码查看转换 | 代码下载 | 常见问题及讨论 | 《深入解析ASP核心技术》 | 王小鸭自动发工资条VBA版
登录系统:用户名: 密码: 如果要讨论问题,请先注册。

[整理]java解析字符串为日期

上一篇:[备忘]Head filter 代码
下一篇:[备忘]spring mvc用注解搞配置搞不定,最后还是用了个web.xml文件

添加日期:2015/7/29 14:34:10 快速返回   返回列表 阅读2523次


/**
     * 解析时间字符串.
     * 
     * @param dateStr
     *            字符串
     * @return Date对象
     */
    public static Date parseDateStr(String dateStr) {
        if (dateStr == null) {
            return null;
        }

        // 最少是14位:2015-3-4 1:2:3
        dateStr = dateStr.trim();
        if (dateStr.length() < 14) {
            return null;
        }

        // 不是19位的,要处理一下
        if (dateStr.length() != 19) {

            // 补齐格式
            String regex = "^\\d{4}-(\\d{1,2})-(\\d{1,2}) (\\d{1,2}):(\\d{1,2}):(\\d{1,2})$";
            Matcher m = Pattern.compile(regex).matcher(dateStr);
            if (m.find()) {
                StringBuilder builder = new StringBuilder(dateStr);
                int posDiff = 0;
                for (int i = 1; i <= 5; i++) {
                    String dd = m.group(i);
                    if (dd.length() == 1) {
                        builder.replace(m.start(i) + posDiff, m.end(i)
                                + posDiff, "0" + dd);
                        posDiff += 1;
                    }
                }
                dateStr = builder.toString();
            } else {
                return null;
            }
        }

        //补齐19位,格式化返回
        try {
            return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(dateStr);
        } catch (ParseException e) {
            return null;
        }

    }

 

评论 COMMENTS
没有评论 No Comments.

添加评论 Add new comment.
昵称 Name:
评论内容 Comment:
验证码(不区分大小写)
Validation Code:
(not case sensitive)
看不清?点这里换一张!(Change it here!)
 
评论由管理员查看后才能显示。the comment will be showed after it is checked by admin.
CopyRight © 心缘地方 2005-2999. All Rights Reserved