也许这个问题很傻,但是我没有找到让我满意的答案。
我有一个像这样的SimpleDataFormat:
sdf = new SimpleDateFormat("dd/MM/yyyy");
如果我尝试解析一个日期,例如: 10/10/15
那么Date结果是针对15年的,而不是2015年的。
为什么parse
在这种情况下有效?我期待一个ParseException
如何强制用户以4位数格式输入年份?(String.length()
请不要)
我正在使用 setLenient(false)
您的日期按字面意义解释。每个http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html
“对于解析,如果模式字母的数量大于2,则将按字面意义解释年份,而不考虑数字的位数。因此,使用模式“ MM / dd / yyyy”,“ 01/11/12”解析为Jan公元11年12月11日”
这也是为什么您没有得到预期的异常的原因。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句