是SimpleDateFormat解析 - 夏令时意识吗?

时间:2015-02-17 11:13:43

标签: java date timezone dst

我想知道以下是否具有DST意识,即,如果我们设置相应国家/地区的时区,则SimpleDateFormat解析方法可识别DST。

SimpleDateFormat sdf = new SimpleDateFormat();
sdf.setTimeZone(TimeZone.getTimeZone("CET")); //Germany
String currentDate = sdf.format((new Date()).getTime());
currentDate = sdf.parse(currentDate);

我没有说过" CET"," MST"," EST"等等是三个字母代码,不鼓励使用它,但不管这是dST意识到的dateformat解析吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

在某些特定情况下,三字母代码可以使用 - 但并非所有代码都包含夏令时规则。

来自TZ数据库来源:

Europe

# Zone  NAME    GMTOFF  RULES  FORMAT  [UNTIL]
Zone    WET     0:00    EU     WE%sT
Zone    CET     1:00    C-Eur  CE%sT
Zone    MET     1:00    C-Eur  ME%sT
Zone    EET     2:00    EU     EE%sT

North America

# Zone  NAME    GMTOFF  RULES  FORMAT  [UNTIL]
Zone    EST      -5:00  -      EST
Zone    MST      -7:00  -      MST
Zone    HST     -10:00  -      HST

如您所见,欧洲文件定义了4个三字母区域,以便向后兼容,所有这些都遵循欧洲夏令时规则。

但是,北美文件只定义了其中的3个。值得注意的是,缺少PST和CST。此外,定义的EST和MST区域具有任何夏令时规则。

通常,您应该避免使用三个字母的缩写。它们不受所有支持,所有支持DST,一般they can be ambiguous