使用Pattern
和Matcher
分类。
看例子:
String inputDate = "01.09.12.00:00:00";
Pattern pattern = Pattern.compile(
"([0-9]{2})[\\.]{0,1}([0-9]{2})[\\.]{0,1}([0-9]{2})[\\.]{0,1}([0-9]{2})[:]{0,1}([0-9]{2})[:]{0,1}([0-9]{2})");
Matcher matcher = pattern.matcher(inputDate);
matcher.find();
StringBuilder cleanStr = new StringBuilder();
for(int i = 1; i <= matcher.groupCount(); i++) {
cleanStr.append(matcher.group(i));
}
SimpleDateFormat format = new SimpleDateFormat("ddMMyyHHmmss");
Date x = format.parse(cleanStr.toString());
System.out.println(x.toString());
最重要的部分是线
Pattern pattern = Pattern.compile(
"([0-9]{2})[\\.]{0,1}([0-9]{2})[\\.]{0,1}([0-9]{2})[\\.]{0,1}([0-9]{2})[:]{0,1}([0-9]{2})[:]{0,1}([0-9]
在这里,您在括号中定义正则表达式并标记组,以便([0-9]{2})
标记一个组。然后是可能的分隔符的表达式,[\\.]*
在这种情况下为 0 或 1 个点,但您可以放置更多可能的分隔符,例如[\\.|\]{0,1}
.
然后运行matcher.find()
which 如果模式匹配则返回 true。然后使用matcher.group(int)
您可以逐组获取。请注意,第一组的索引为 1。
然后我String
使用StringBuilder
. 然后解析日期。
干杯,迈克尔