这是预期的行为-您告诉DateFormat对象期望日期的6个字符的String表示形式,这就是您传递的内容。对空格进行了解析。但是,如果您使用“
4x1x01”,则会出现错误。请注意,解析时,宽大处理默认为true,例如
DateFormat df = new SimpleDateFormat("MMddyy");Date date = df.parse("4 1 01"); // runs successfully (as you know)DateFormat df = new SimpleDateFormat("MMddyy");Date date = df.parse("41 01"); // 5 character String - runs successfullyDateFormat df = new SimpleDateFormat("MMddyy");df.setLenient(false);Date date = df.parse("41 01"); // 5 character String - causes exceptionDateFormat df = new SimpleDateFormat("MMddyy");Date date = df.parse("999999"); // 6 character String - runs successfullyDateFormat df = new SimpleDateFormat("MMddyy");df.setLenient(false);Date date = df.parse("999999"); // 6 character String - causes exception当宽大处理设置为true(默认行为)时,解析将尝试解密无效的输入,例如,第31天的第35天变为下个月的第4天。



