我在 Windows 机器上运行 Java 程序。我正在尝试获取时区列表及其相关信息。这是完整的程序:
String[] allTimeZones = TimeZone.getAvailableIDs();
Date now = new Date();
for (int i = 0; i < allTimeZones.length; i++) {
TimeZone tz = TimeZone.getTimeZone(allTimeZones[i]);
System.out.format("%s;%s; %f \n",
allTimeZones[i],
tz.getDisplayName(),
(float) (tz.getOffset(now.getTime())/3600000.0));
}
生成的时区之一具有以下信息:
America/New_York;东部标准时间; -4.000000
这令人费解。此时,纽约正处于东部夏季夏令时。所以上面的信息是不对的。
有谁知道我如何让 Java 生成
America/New_York;东部标准时间; -5.000000
或类似的东西
America/New_York;东部夏季夏令时;-4.000000
感谢帮助!
问候