使用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]
ここでは、正規表現を定義し、paranthesisでグループを([0-9]{2})
マークして、グループをマークします。次に[\\.]*
、この場合は0または1ドットの可能なデリメータの式ですが、たとえば、より多くの可能なデリメータを配置できます[\\.|\]{0,1}
。
次にmatcher.find()
、パターンが一致した場合にtrueを返す実行を実行します。そして、を使用しmatcher.group(int)
て、グループごとに取得できます。最初のグループのインデックスは1であることに注意してください。
String
次に、を使用してクリーンな日付を作成しStringBuilder
ます。そして、日付を解析します。
乾杯、ミハル