我想知道以下是否具有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解析吗?
提前致谢。
答案 0 :(得分:1)
在某些特定情况下,三字母代码可以使用 - 但并非所有代码都包含夏令时规则。
来自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,一般they can be ambiguous。