u-ryo's blog

various information for coding...

Category: Date

Date Fromat Validation by Java

| Comments

Javaで日付フォーマットの検証をしたいと言われました。 ぱっと思いつくのは、SimpleDateFormatsetLenient(false)にしてparseする、 ですが、これだとException投げるんですよね。 Exception catchをlogicに使うのは良くない、 ということで、他を探してみると意外となかなかないんですねこれが。 commons-langのDateUtils.parseDateStrictlyもException返しますし。

色々探してみると、Apacheのcommons-validatorというのがありました。

1
2
3
4
5
6
7
8
9
10
11
@Grab('commons-validator:commons-validator')
import org.apache.commons.validator.routines.CalendarValidator

pattern = "yyyy/MM/dd"
validator = CalendarValidator.getInstance()

assert validator.isValid("2016/02/29", pattern)
assert !validator.isValid("2016/02/30", pattern)

assert validator.isValid("2016/08/31", pattern)
assert !validator.isValid("2016/08/32", pattern)