SimpleDateFormat解析错误位置

时间:2012-02-20 13:40:42

标签: java simpledateformat parseexception

如果用户输入日期超出范围(例如月份= 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();
    }

有什么解决方案吗? THX

2 个答案:

答案 0 :(得分:1)

你想关闭宽松解析:

sdf.setLenient(false);

请参阅the documentation

答案 1 :(得分:0)

请参阅docs

  

如果发生错误,则不改变pos的索引,将pos的错误索引设置为发生错误的字符的索引,并返回null。