Javaでの日付チェック
書いては忘れるので、メモする。
java.timeパッケージを使った方法
/**
* java.time.LocalDateによるチェック
* @param value (例) "2016/09/31"
*/
public boolean isDate(String value) {
DateTimeFormatter fmt =
DateTimeFormatter.ofPattern("uuuu/MM/dd")
.withResolverStyle(ResolverStyle.STRICT);
try {
LocalDate.parse(value, fmt);
return true;
} catch(DateTimeParseException e) {
return false;
}
}
java.util.Dateによる方法
/**
* java.util.Dateによるチェック
* @param value (例) "2016/09/31"
*/
public boolean isDate(String value) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
sdf.setLenient(false); // 日付チェックを厳密にする
try{
sdf.parse(params);
return true;
}catch(ParseException e){
return false;
}
}
あるいは次のように、生成した日付と一致するかどうかを調べる。
public boolean isDate(String value) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
sdf.setLenient(false); // 日付チェックを厳密にする
try{
Date parseDate = sdf.parse(value);
return sdf.format(parseDate).equals(value);
}catch(ParseException e){
return false;
}
}
参考
カテゴリー: Java, memo
タグ: Date, DateTimeFormatter, LocalDate, SimpleDateFormat, 日付チェック
カウント: 205