关于java:从Timezone对象返回错误的夏令时偏移

Wrong Daylight Saving Offset Returned from Timezone Object

我有以下代码:

1
2
java.util.TimeZone tz = java.util.TimeZone.getDefault();
System.out.println("Server DS Offset:" + tz.getDSTSavings());

现在夏令时已关闭,所以我期待它返回0,但它仍然返回3600000。

服务器是Solaris 10

date命令返回:

1
Friday, November 11, 2016  4:27:12 PM EST

env返回:

1
TZ=Canada/Eastern

如何确定夏令时dst是否有效

您在代码中得到的是TimeZone属性,该属性是关于DST的偏移量。 在世界上一些偏移是30分钟。 有些人没有。 所以,如果Timezone遵循DST,那么你就得到了这个值。