/** * 解析时间字符串. * * @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; }
}
|