« Linuxで無線LANカードWLI-CB-G54(bcm43xx)を動かす奮闘記録 | メイン | 指定時刻以降の更新されたファイルを列挙する »

Javaで日付妥当性チェック

PHPに比べるとめんどくさいのね。

入力はString型とする。

入力日付フォーマットをチェックしつつ日付の妥当性も検証する。 なお内部的にはCalendarクラスのsetLenientメソッドを呼んでいるので引数がintの場合はCalendarクラスを利用したサンプル (そっちは世の中にありふれてる)を使うといいだろう。

 String dateString = "2007-07-30";
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
     // 日付解析を厳密に行う(2/31などはNG)
     sdf.setLenient(false);
  try {
   Date date = sdf.parse(dateString);
   return sdf.format(date);
  } catch (ParseException e) {
   // 不正な日付のときはこのブロックに到達
  }

JavaScriptとかASPでも同種の処理を作った覚えがある。 たしかフォーマットをかける前とかけた後を比較して同じだったら正常日付、違ったら不正日付とみなしていた。

トラックバック

このエントリーのトラックバックURL:
http://rutake.ddo.jp/blog/mt-tb.cgi/97

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2007年07月30日 10:28に投稿されたエントリーのページです。

ひとつ前の投稿は「Linuxで無線LANカードWLI-CB-G54(bcm43xx)を動かす奮闘記録」です。

次の投稿は「指定時刻以降の更新されたファイルを列挙する」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。