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 回答