Javaにおける日付文字列の書式・日付チェックは落とし穴も多く、自分の身の回りでもそれによる障害等も発生しているので整理してみます。 例えば、ある文字列が、yyyy/MM/dd(e.g. 2016/01/01)という書式かつ有効な日付であることをチェックしたい場合を考えてみます。 Java8の場合 Date and Time APIを使うのがいいと思います。 以下の例では9/31は存在しないため例外が発生します。 LocalDate.parse("2016/09/31", DateTimeFormatter.ofPattern("uuuu/MM/dd").withResolverStyle(ResolverStyle.STRICT));