SimpleDateFormat错误或误解模式和宽松?

时间:2016-04-06 20:27:17

标签: java simpledateformat

有代码:

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MMM d HH:mm yyyy");

这将按预期工作:

simpleDateFormat.parse("Mar 27 02:02 2016");
simpleDateFormat.parse("Mar 27 03:02 2016");

然而simpleDateFormat.setLenient(false);

将使解析(" Mar 27 02:02 2016")失败。 这让我完全糊涂了 - 我能看到的,SDF格式模式是对的吗?因此,如果设置了宽松,那就不重要了。此外,我尝试了相同格式的许多其他随机(数千)日期字符串,它只是" Mar 27 02:02 2016" datetring失败 - 。这里发生了什么? 注意,如果重要的话,语言环境是sv_SE,时区是"欧洲/斯德哥尔摩" (并且useDaylight用于创建日历)。

1 个答案:

答案 0 :(得分:0)

我测试过如下,它对我来说很好用

Locale locale = new Locale("sv", "SE");
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MMM d HH:mm yyyy", locale);
simpleDateFormat.setLenient(false);
Date pDate = simpleDateFormat.parse("Mar 27 02:02 2016");
//simpleDateFormat.parse("Mar 27 03:02 2016");
System.out.println(pDate);