将字符串解析为“yyyy”形式的日期

时间:2012-04-10 16:09:45

标签: java date simpledateformat

我需要以“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”,它解析为年份,输出符合预期“年份是1月1日00:00:00 GMT 2003”。但是当我们给出一个超过4位的无效字符串时,如上面的代码片段,比如“200323”,它不会抛出一个解析异常,而是接受字符串值,输出显示为“年份是星期一01月01日00:00:00 GMT 200323“。任何人都可以提出解决方案来解决这个或至少使它抛出解析异常?我甚至在解析之前尝试过formatter.setLenient(false),但它没有显示任何效果。任何帮助表示赞赏。提前谢谢。

1 个答案:

答案 0 :(得分:1)

您的意思是日期范围高达9999而不是您错误的朋友

java日期范围是

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

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

所以你无法处理。