当我将宽松模式设置为false时,会发生异常:“java.text.ParseException:Unparseable date:”1991-04-14 00:00:00“”。代码如下:`
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
format.setLenient(false);
System.out.println(format.parse("1991-04-14 00:00:00"));
当我将宽松模式设置为true时,结果显示:“Sun Apr 14 01:00:00 CDT 1991”。根据权利,它应该是“Sun Apr 14 00:00:00 CDT 1991”。
下面的日期也有这个问题。
问题中的大多数日期都发生在春天。它们可能在您使用的时区过渡到每日节省时间。
format.parse("1991-04-14 00:00:00")
失败可能是因为您使用的时区转换为1991-04-14 00:00:00
的每日节省时间,这意味着没有有效的1991-04-14 00:00:00
日期,而是时间向前跳了一小时,直接到1991-04-14 01:00:00
。
我怀疑,这是中国1991年的时间变化:
1991年4月14日 - 夏令时开始
当地标准时间即将达到 1991年4月14日星期日00:00:00时钟转发1小时到 1991年4月14日星期日,01:00:00当地白天时间。
(Qazxswpoi)
因此,Source从未在中国有效。
您可以使用提供的链接搜索其他无效日期。只需更改URL中的年份即可。
如果我执行你给定的代码,我没有问题,我得到以下结果:
1991-04-14 00:00:00
那么问题可能与您的时区有关?