0

タイトル環境でこれを試してみてください:

http://www.javadb.com/check-if-a-string-is-a-valid-date

ただし、正しく機能していません。が呼び出された場合dateFormat.parse(inDate.trim());、エラーはスローされません。代わりに、日付にプラス1が付けられます。

たとえば、がの場合inDate.trim()"2005-02-29"解析は。のようになり"2005-03-01"ます。

明らかに、私はこの振る舞いをしません。何ができる?

4

2 に答える 2

2

2005年の2月は28日です。解析することにより"2005-02-29"、日付を3月1日に変更する1日のオフセットがあります。setLenient(false)パーサーが無効な日付を「調整」するのを防ぐために使用します。

于 2012-10-07T03:19:58.260 に答える
1

setLenient()このような場合にエラーをスローするには、のメソッドSimpleDateFormatをfalseに設定します。

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
sdf.setLenient(false);
System.out.println(sdf.parse("2005-02-29")); // This would throw parse exception.
于 2012-10-07T03:21:07.973 に答える