我需要以“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)
,但它没有显示任何效果。任何帮助表示赞赏。提前谢谢。
答案 0 :(得分:1)
您的意思是日期范围高达9999而不是您错误的朋友
java日期范围是
开始: Sat Jan 01 00:00:00 PST 1
结束: Wed Apr 17 21:34:08 PST 292269054
所以你无法处理。