是SimpleDateFormat解析-夏令时感知



我想知道以下内容是否支持夏令时,即如果我们设置相应国家的时区,SimpleDateFormat解析方法是否支持夏令营。

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

我不知道"CET"、"MST"one_answers"EST"等是三个字母的代码,我们不鼓励使用它,但不管怎样,日期格式解析是否支持DST?

提前谢谢。

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

来自TZ数据库来源:

欧洲:

# 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

北美:

# 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,通常它们可能是不明确的。

相关内容

  • 没有找到相关文章

最新更新