java.text.ParseException: unparseable date: "1991-04-14 00:00:00"



当我将宽大模式设置为false时,excetion出现:" java.text.parseexception:notable byable date日期:" 1991-04-14-14-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"。

以下日期也有此问题。

  • 19400603000000
  • 19410316000000
  • 19860504000000
  • 19870412000000
  • 19880410000000
  • 19890416000000
  • 19900415000000
  • 19910414000000

问题中的大多数日期发生在春季。它们可能发生在您正在使用的时区中的每日节省时间。

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当地的夏令时间。

(源)

因此,1991-04-14 00:00:00在中国从来都不是有效的时间。

您可以使用提供的链接来搜索其他无效的日期。只需更改URL中的年份。

如果我执行您的给定代码,我没有问题,我会得到以下结果:

Sun Apr 14 00:00:00 CEST 1991

所以问题可能是关于您的时区的?

最新更新