我有一个 Java 应用程序,它在测试中基本上包含以下代码,并希望它抛出异常:
String date = "Fr August 21 16:41:32 CEST 2015";
DateFormat dateFormat = new SimpleDateFormat("EEE MMMM dd HH:mm:ss z yyyy", Locale.GERMANY);
dateFormat.parse(date);
当应用程序在 Suns Java 1.7 下运行时,它总是失败,正如预期的那样,出现以下异常:
java.text.ParseException: Unparseable date: "Fr August 21 16:41:32 CEST 2015"
它失败了,因为 CEST 不是德国语言环境的合法时区。当我现在在 IBM 的 Java 1.8 下运行相同的测试时,它现在成功解析为
Fr August 21 16:41:32 MESZ 2015
所以我想知道哪种行为是正确的?我现在有错误还是以前有过?还是我以某种方式错过了配置?