1

我需要以“yyyy”格式将字符串解析为年份。我使用的代码片段是

try{
        String strDate = "200323";
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy");
        Date dateStr = formatter.parse(strDate);

        System.out.println("The year is " + dateStr);


    }
    catch(Exception e){
        System.out.println("Date parse exception");
    }

问题是,如果我使用一个 4 位数字的字符串,比如“2003”,它会解析为年份,并且输出如预期的那样“年份是 Wed Jan 01 00:00:00 GMT 2003”。但是当我们在上面的代码片段中给出一个超过 4 位的无效字符串时,比如“200323”,它不会抛出解析异常,而是接受字符串值,输出显示为“年份是 Mon Jan 01格林威治标准时间 200323 00:00:00”。任何人都可以提出一个解决方案来解决这个问题或至少让它抛出解析异常吗?我什至在解析之前尝试formatter.setLenient(false)过,但它没有显示任何效果。任何帮助表示赞赏。提前致谢。

4

1 回答 1

1

你的意思是日期范围最多 9999 比你错了朋友

java日期范围是

开始: Sat Jan 01 00:00:00 PST 1

结尾: Wed Apr 17 21:34:08 PST 292269054

所以你无法处理。

于 2012-04-10T16:24:44.870 回答