2017-07-11 45 views
0

當我執行:EST和EDT時間返回GMT時間在Java

TimeZone.setDefault(TimeZone.getTimeZone("EDT")); 

TimeZone.setDefault(TimeZone.getTimeZone("EST")); 

,並得到了時區:

System.out.println(TimeZone.getDefault()); 

我得到的時間在GMT。 或者如果你能告訴我什麼是我可以通過的全名,而不是像EST和EDT這樣的縮寫名稱。全名如「AMerica/New-York」。

我想顯示EST時間。

回答

0

你可以嘗試設置使用America/New_York時區:

TimeZone.setDefault(TimeZone.getTimeZone("America/New_York")); 
System.out.println(TimeZone.getDefault()); 

此打印:

sun.util.calendar.ZoneInfo[id="America/New_York",offset=-18000000,dstSavings=3600000,useDaylight=true,transitions=235,lastRule=java.util.SimpleTimeZone[id=America/New_York,offset=-18000000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=3,startMonth=2,startDay=8,startDayOfWeek=1,startTime=7200000,startTimeMode=0,endMode=3,endMonth=10,endDay=1,endDayOfWeek=1,endTime=7200000,endTimeMode=0]] 

也許一個側面說明:

可以列出使用所有可用的時區的ID:

String[] ids = TimeZone.getAvailableIDs(); 
for (String id : ids) { 
    System.out.println(TimeZone.getTimeZone(id).getID()); 
}