Java 解析一个字符串到表单的日期;yyyy“;
我需要以“yyyy”格式将字符串解析为year。我使用的代码片段是Java 解析一个字符串到表单的日期;yyyy“;,java,date,simpledateformat,Java,Date,Simpledateformat,我需要以“yyyy”格式将字符串解析为year。我使用的代码片段是 try{ String strDate = "200323"; SimpleDateFormat formatter = new SimpleDateFormat("yyyy"); Date dateStr = formatter.parse(strDate); System.out.println("The year is " + dateStr);
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 00:00:00 GMT 200323”。有人能提出一个解决方案来解决这个问题,或者至少让它抛出解析异常吗?我甚至在解析之前尝试了
formatter.setLenient(false)
,但没有显示任何效果。感谢您的帮助。提前谢谢。你的意思是,日期范围高达9999天,而你错了
java日期范围为
开始:1太平洋标准时间1月1日星期六00:00:00
结束:4月17日星期三21:34:08太平洋标准时间292269054
所以你不能处理它。你的意思是,日期范围高达9999,而你错了,朋友
java日期范围为
开始:1太平洋标准时间1月1日星期六00:00:00
结束:4月17日星期三21:34:08太平洋标准时间292269054
所以你不能处理它。为什么不传递字符串的前4个字符呢?或者如果长度超过4,则抛出java.text.ParseException()200323
为有效年份。如果字符串超过4位,您可以截断它。我认为问题在于让“格式化程序”计算年份。你必须解决的问题是,为你的案件计算出“有效年”的通行证。哪些情况可能会破坏此(无效的年份字符串)?然后你可以清理它们并将它们传递给格式化程序。为什么不传递字符串的前4个字符呢?或者如果长度超过4,则抛出java.text.ParseException()200323
为有效年份。如果字符串超过4位,您可以截断它。我认为问题在于让“格式化程序”计算年份。你必须解决的问题是,为你的案件计算出“有效年”的通行证。哪些情况可能会破坏此(无效的年份字符串)?然后,您可以清理这些文件并将其传递给格式化