luc*_*uta 4 java simpledateformat
我有以下几行:
final SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date d = simpleDateFormat.parse("2004-52-05");
Run Code Online (Sandbox Code Playgroud)
我希望第2行会抛出异常,因为'52'不是有效的月份,但是代码运行并且存储在d对象中的日期是
Sat Apr 05 00:00:00 EEST 2008
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下为什么吗?
如果要创建严格匹配模式的日期对象,请将lenient设置为false.
来自Javadoc
Calendar有两种解释日历字段的模式,lenient和non-lenient.当日历处于宽松模式时,它接受比它产生的更广泛的日历字段值.当日历重新计算get()返回的日历字段值时,所有日历字段都会进行规范化.例如,宽松的GregorianCalendar将MONTH == JANUARY,DAY_OF_MONTH == 32解释为2月1日.
所以添加这个..
simpleDateFormat.setLenient(false);
Run Code Online (Sandbox Code Playgroud)
这会Exception像你期待的那样抛出......
java.text.ParseException: Unparseable date: "2004-52-05"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
85 次 |
| 最近记录: |