我想知道以下内容是否支持夏令时,即如果我们设置相应国家的时区,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,通常它们可能是不明确的。