2017-11-07 13 views
-2

以下のDateパターンの正規表現をコードで知りたかったのです。Javaの正規表現でパターンをチェックするYYYY MMM DD

 String line = "2017 Apr 04"; 
     if (line.matches("[T]|[T\\+\\d{0,2}]")) { 
      System.out.println(line); 
     } 
     else 
     { 
      System.out.println("test"); 

     } 
+0

は、なぜあなたはたDateFormatterを使用していませんか? – Flown

+0

'SimpleDateFormat'を使い、適切な例外をキャッチしてください。 –

+0

または[DateTimeFormatter](https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html)を最新の状態にする必要があります。 – AxelH

答えて

2

この問題を解決するソリューションを使用する方がよいでしょう。それはここでSimpleDateFormat

ある例です。

package datevalidator; 

import java.text.ParseException; 
import java.text.SimpleDateFormat; 

public class Main { 

    public static void main(String[] args) { 
     System.out.println(validateDate("2017 04 Apr")); 
     System.out.println(validateDate("Apr 04 2017")); 
     System.out.println(validateDate("2017 Apr 04")); 
     System.out.println(validateDate("04 Apr 2017")); 
    } 

    private static boolean validateDate(String date) { 
     SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy MMM dd"); 
     try { 
      simpleDateFormat.parse(date); 
     } catch (ParseException e) { 
      return false; 
     } 
     return true; 
    } 
} 

それが印刷されます。それはまた、4月4日2017年を検証する

false 
false 
true 
true 

+0

ありがとうございました! – Vicky1393

+0

これは、特定の日付のみを検証するか、これらの4つの形式の日付を検証しますか? – Vicky1393

+0

@ Vicky1393 4つのフォーマットはどういう意味ですか? –

関連する問題