35789
`^((19|20)\\d\\d)([- /.])(0[1-9]|1[012])([- /.])(0[1-9]|[12][0-9]|3[01])$`

現在JAVAで日付有効性チェックソースコード作成しております。  
しかし、ソースコードは  
1990 01 01  
1990-01-01  
上の条件も全部trueです。  
私は1990-01-01 ＜＜この形式だけtrueにしたいです。  
ただ1990-01-01 ＜＜この形式だけtrueにしたいだったらどうすればいいですか。

`^((19|20)\\d\\d)([- /.])-(0[1-9]|1[012])([- /.])-(0[1-9]|[12][0-9]|3[01])$`  
上みたいに挑戦した事もありますができませんでした。
CC BY-SA 3.0
2017-06-22T00:31:31.630
35787
2017-06-22T00:56:48.293
2017-06-22T00:56:48.293
2238
23472
question
java 正規表現
javaで日付の有効性チェックを行いたい
日付の有効性チェックを自作することはあまりお勧めできません(「車輪の再発明」になるので)。`commons-
lang`の`DateUtils`などを利用した方がいいと思います。

```

    try {
        DateUtils.parseDateStrictly("1990 01 01", new String[] {"yyyy-MM-dd"});
    } catch (ParseException e) {
        // 日付として有効ではない場合の処理を実装
    }
    
```
CC BY-SA 3.0
2017-06-22T00:45:26.087
35789
2017-06-22T00:45:26.087
21092
35787
answer