Java 为什么显示错误的时区输出?

Java 为什么显示错误的时区输出?,java,timezone,Java,Timezone,我的系统上的输出是: 东部标准时间 2015-04-01 02:41美国东部时间 我期待着: 东部标准时间 2015-04-01 02:41美国东部时间 因为美国/东部是东部。 谁能解释一下原因吗?那是东部夏时制。要节省一小时的日光,请从当前时间中减去一小时。正如你所看到的,时间是一样的。这意味着EST已自动更新。总之,基本上是一样的,不用担心 那是东部夏时制。要节省一小时的日光,请从当前时间中减去一小时。正如你所看到的,时间是一样的。这意味着EST已自动更新。总之,基本上是一样的,不用担心 东

我的系统上的输出是:

东部标准时间

2015-04-01 02:41美国东部时间

我期待着:

东部标准时间

2015-04-01 02:41美国东部时间

因为美国/东部是东部。
谁能解释一下原因吗?那是东部夏时制。要节省一小时的日光,请从当前时间中减去一小时。正如你所看到的,时间是一样的。这意味着EST已自动更新。总之,基本上是一样的,不用担心


那是东部夏时制。要节省一小时的日光,请从当前时间中减去一小时。正如你所看到的,时间是一样的。这意味着EST已自动更新。总之,基本上是一样的,不用担心

东部夏令时(EDT)是与东部标准时间(EST)耦合的夏令时时区。看

因此您得到了正确的输出。

东部夏时制(EDT)是与东部标准时间(EST)耦合的夏令时时区。看


所以您得到的输出是正确的。

这是因为夏季的夏令时

美国各州夏季使用EDT,冬季使用EST


这是因为夏天的夏令时

美国各州夏季使用EDT,冬季使用EST

TimeZone timeZone = TimeZone.getTimeZone("US/Eastern");     
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd kk:mm z");
Date date=new Date();
formatter.setTimeZone(timeZone);
System.out.println(timeZone.getDisplayName());
System.out.println(formatter.format(date));