SimpleDateFormat позиция разбора ошибки разбора - PullRequest
1 голос
/ 20 февраля 2012

Я хотел бы уведомить пользователя, если он ввел дату вне диапазона (например, месяц = ​​22).Но dateFormat хранится в файле глобальных настроек, поэтому я не знаю точную позицию поля месяца во входной строке.Я пытался использовать метод getErrorOffset () ParseException, но он всегда возвращает конечную позицию (10) входной строки

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

Есть ли какое-либо решение?ТНХ

Ответы [ 2 ]

1 голос
/ 20 февраля 2012

Вы хотите отключить мягкий анализ:

sdf.setLenient(false);

См. документацию

0 голосов
/ 20 февраля 2012

См. документы :

Если возникает ошибка, то индекс pos не изменяется, индекс ошибки pos устанавливается на индекс символа, в котором произошла ошибка, и возвращается значение null.

...