您好,我使用自定义格式字符串设置了一个简单的日期格式:
MMddyy
我给它以下值来解析:
4 1 01
我认为它不应该解析这个,因为有空格,但简单日期格式正在返回日期
公元 0001 年 4 月 4 日
有什么想法为什么吗?
这是预期的行为 - 您告诉 DateFormat 对象需要一个日期的 6 个字符的字符串表示形式,这就是您传入的内容。空格被解析正常。但是,如果您使用“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 successfully
DateFormat df = new SimpleDateFormat("MMddyy");
df.setLenient(false);
Date date = df.parse("41 01"); // 5 character String - causes exception
DateFormat df = new SimpleDateFormat("MMddyy");
Date date = df.parse("999999"); // 6 character String - runs successfully
DateFormat df = new SimpleDateFormat("MMddyy");
df.setLenient(false);
Date date = df.parse("999999"); // 6 character String - causes exception
当 leniency 设置为 true(默认行为)时,解析会努力破译无效输入,例如有 31 天的月份的第 35 天将成为下个月的第 4 天。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)