我有一个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
所以我想知道哪种行为是正确的?我现在有错误还是以前有错误?还是我以某种方式错过了某些配置?