6

はい、別のJava Date投稿:)

私の問題:

挿入された日付が要求された形式 (dd/MM/yyyy) であるかどうかのテストに使用される単純な標準コード:

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
try {

   sdf.parse(strDate); 

} catch(ParseException e) {

   // err

}

strDate = "2012 年 10 月 12 日" ----> sysout = err (ok)

strDate = "2012-11-10" ----> sysout = err (ok)

strDate = "15/10/2011" ----> sysout = 解析 (OK)

問題:

strDate = "2012/12/15" ----> sysout = "Tue Jun 03 00:00:00 CET 21" のように解析されたエラー結果が予想されるこの日付

知るか???

4

1 に答える 1

10

setLenientfalseに設定するだけです。

API から:

setLenient メソッド:

日付/時刻の解析を緩くするかどうかを指定します。緩やかな解析では、パーサーはヒューリスティックを使用して、このオブジェクトの形式と正確に一致しない入力を解釈する場合があります。厳密な解析では、入力はこのオブジェクトの形式と一致する必要があります。

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
try {
  sdf.setLenient(false);
  System.out.println(sdf.parse("2012/12/15")); 
} catch(ParseException e) {
  e.printStackTrace();
}
于 2012-11-23T15:06:54.960 に答える