1

ユーザーが範囲外の日付を入力した場合 (たとえば、月 = 22) に通知したいと思います。しかし、dateFormat はグローバル設定ファイルに格納されるため、入力文字列の月フィールドの正確な位置がわかりません。ParseException の getErrorOffset() メソッドを使ってみたのですが、必ず入力文字列の終了位置(10)を返します

    SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
    sdf.setLenient(false);
    try
    {
        sdf.parse("22/12/2009");
    }
    catch (ParseException ex)
    {
        ex.getErrorOffset();
    }

解決策はありますか?どうも

4

2 に答える 2

1

寛大な解析をオフにしたい場合:

sdf.setLenient(false);

ドキュメントを見る

于 2012-02-20T13:43:37.420 に答える
0

ドキュメントを参照してください:

エラーが発生した場合、pos のインデックスは変更されず、pos のエラー インデックスはエラーが発生した文字のインデックスに設定され、null が返されます。

于 2012-02-20T13:45:53.023 に答える