ホーム » ブログ » javaで日付・時刻の妥当性をチェックする方法
このエントリーをはてなブックマークに追加
@2013/08/01

スポンサーリンク
画面上で入力した日付の文字列を、javaサーバ側で日付に変更したとき、ありえない日付文字列を受けて、java側は正しくカレンダー日付に勝手に変わって受け付けました。調査した結果:例え20130732のような日付文字列に対して、javaは20130801と勝手に変わって受ける。同様に、20130700は20130630に勝手に変わる。
ここでは、setLenientメッソドで日付・時刻の妥当性をチェックする方法です。

import java.text.SimpleDateFormat;
import java.util.Calendar;

public class CalendarWithLenient {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		// Calendarクラスのオブジェクトcal1を生成しています。
		Calendar cal1 = Calendar.getInstance();

		// setLenientメソッドでfalseを設定しています。
		cal1.setLenient(false);

		// setメソッドで存在しない日付2013年7月32日を設定しています。
		cal1.set(2013, 6, 31);

		SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy'年'MM'月'dd'日'");

		try {
			System.out.println(sdf1.format(cal1.getTime()) + "は正しく日付です。");

		}
		// 存在しない日付のため例外がスローされます。
		catch (IllegalArgumentException e) {
			// e.printStackTrace();
			System.out.println("存在しない日付です。");
		}

	}

}

生活三昧@zanmai.net

♪ 当記事がお役に立ちましたらシェアして頂ければ嬉しいです。
0人
このエントリーをはてなブックマークに追加


★ 当記事を閲覧の方は下記の【関連記事】も閲覧していました。

お名前:

 

EMAIL:

 

URL:

 

認証コード:

zanmai.net-safecode

 


※会員の方は認証コードを要らないから、新規登録をオススメ!

check