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());
가장 중요한 부분은 여기에 정규 표현식을 정의하고 paranthesis에서 그룹을 표시
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()
을 실행하면 패턴이 일치하면 true를 반환합니다.그리고 matcher.group(int)
을 사용하면 그룹별로 그룹을 얻을 수 있습니다. 첫 번째 그룹의 인덱스는 1입니다.
String
다음으로 StringBuilder
을 사용하여 정리 날짜를 만듭니다. 그런 다음 날짜를 파싱합니다.
건배, 원래의 날짜 형식가 해결되지 않은 경우 마이클
, 경향이 어렵고 오류가 될 것입니다. – assylias
날짜 형식에 대한 더 많은 예제를 제공 할 수 있습니까? 소유하고있는 모든 사건을 다루는 것이 가장 좋습니다. – nhahtdh
모든 변형을 공통 형식으로 정규화해야합니다. 오직 당신 만이 모든 유사 콘텐츠가 무엇이며 어떻게 변형시킬 수 있는지 알고 있습니다. –