首页 > 解决方案 > 带有德语语言环境的 SimpleDateFormat 是否应该能够解析带有时区 CEST 的字符串?

问题描述

我有一个 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

所以我想知道哪种行为是正确的?我现在有错误还是以前有过?还是我以某种方式错过了配置?

标签: javatimezonelocalesimpledateformatibm-jre

解决方案


推荐阅读