Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 解析一个字符串到表单的日期;yyyy“;_Java_Date_Simpledateformat - Fatal编程技术网

Java 解析一个字符串到表单的日期;yyyy“;

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);

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

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位,您可以截断它。我认为问题在于让“格式化程序”计算年份。你必须解决的问题是,为你的案件计算出“有效年”的通行证。哪些情况可能会破坏此(无效的年份字符串)?然后,您可以清理这些文件并将其传递给格式化