stryhのノート ~stryh/changelog

日付

最近、JDK1.4+Struts1系のPJでバリデーション処理を自前で書いているんですけどその中で日付の処理を行い「これはいいね」と思えたことがあったので備忘録。

まっ人によっては「そんなもの知らねーのかよ」と思うかもしれませんがね。

で、13月とか32日とかフォーマットは合っているけど存在しない日付の場合もエラーにしたいな~って(Webやっているなら当たり前ですけどね)思い色々調べていたらSimpleDateFormatクラスに便利なメソッドがあるんですね。

java.text.DateFormat.setLenient(boolean lenient)っていうやつです。

まずは文字列である日付をパースする処理でこれを使用しない場合です。

この場合、日付のフォーマットは間違っていないけど、日付はありえないものを使用しています。

こういう場合もエラーにしたいですよね(うんうん)。

次がこの場合でもエラーを返すようにしたコード。

★印の部分だけ追加。

これでありえない日付をパースしようとするとエラーになりできません。

lenientの和訳は「大目に見る」っていう意味みたいです。

なので引数(boolean)をセットする時は「大目に見る?」って自問し、Yesの場合は「true」を、Noの場合は「false」をセットしましょう。

URL :
TRACKBACK URL :

Leave a reply

*
*
* (公開されません)

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

Return Top