ひよっこSEのコツコツ備忘録

システム開発に携わる中で、知識として学んだことや覚えたことを書き綴っています。

Java

【Java】日付妥当性チェック

投稿日:2014年1月9日 更新日:

画面から入力された値が日付として妥当かどうかをチェックする方法。

ここで言ってる「妥当かどうか」と言うのは、

① そもそもそんな日付が存在するのか
(2014年10月40日とか、うるう年とか・・・)

② 想定している書式で日付が入力されているか
“2014/01/23”の書式を期待していたのに“20140123”と入力されたとか・・・)

この2つ。入力された値がこの2つを満たしているかどうかをチェックする。

 

 

やっていることは、チェック対象文字列のDate型への変換。

変換できれば妥当性OK、変換できなければ妥当性NG。

んで、変換する際の「日付文字列はこの書式で受け取りますよ~」というものを、SimpleDateFormatオブジェクト作成時のパラメータに指定している感じ。

んで、ポイントとしてはSimpleDateFormatオブジェクトのsetLenient(false)。この設定をすることで、日付の厳密な解析を行ってくれるようになるんで、この設定が漏れると日付の値のチェックをしてくれない。(上の①のチェックをしてくれない)

ちなみに、SimpleDateFormatオブジェクトに“yyyy/MM/dd”という書式を指定した場合、“2014/01/09”“2014/1/9”も妥当性OK。でも、“yyyyMMdd”という書式を指定した場合は、“20140109”はOKで“201419”はNG。

-Java
-

執筆者:


comment

メールアドレスが公開されることはありません。

CAPTCHA


関連記事

【Java】splitメソッドで文字列分割

StringTokenizerを使用した文字列の分割は推奨されていないようなので、主流(?)なsplitメソッドによる文字列分割。 使い方としては、第1引数に区切り文字を渡してあげると、分割された文字 …

【Java】日付の計算(加算と減算)

システム日付や任意の日付に対して加算や減算を行うには、Calendarクラスを使用する。 下のサンプルでは、システム日付を保持したCalendarオブジェクトに対して日数などの加減算を行い、結果をyy …

【Java】String型とint型の型変換

文字列と数値の型変換を行うことは結構あって、一度覚えてしまえば忘れることはないと思うけど念のためメモ。 まずは文字列を数値に変換する方法。 [crayon-5d36d7cd3811f803813661 …

【Java】String.formatで文字列を成形する

文字列を動的に組み立てる方法としては、

のようなやり方が一番単純。だと思う。   で、もう少しだけ可読性やら拡張性やらを考慮 …

【Java】ファイルダウンロード処理

サーバーに保管されているファイルをダウンロードする方法。 ダウンロード時の動作についてはレスポンスに設定する”Content-Disposition”の値次第になっていて、&# …