2015-04-01 56 views
1
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)); 

我的系統上的輸出:爲什麼顯示錯誤的時區輸出?

東部標準時間

2015-04-01 02:41 EDT

我期待:

東標準時間

2015-04-01 02:41 EST

因爲US/Eastern是EST。 任何人都可以解釋我爲什麼?

回答

3

這是東部夏令時。爲了節省一小時的白天,從當前時間中減去一小時。正如你所看到的,時代是一樣的。這意味着EST自動更新。總之,它基本上是一樣的,不用擔心。

See this short encyclopedia article.

2

的EDT(東部時間)是耦合到EST(東部標準時間)夏令時區。請參閱Eastern Time Zone

所以你正在得到一個正確的輸出。

1

這是因爲在夏季夏令時。

美國各州在夏季使用EDT,在冬季使用EST。 1