有代码:
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用于创建日历)。
答案 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);