Насколько отличается EST от EST5EDT? Разве EST не учитывает летнее время?
Я написал небольшой фрагмент Java, чтобы выяснить разницу, и вывод говорит, что EST5EDT учитывает летнее время, а EST - нет.
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss.SSS");
dateFormat.setTimeZone(TimeZone.getTimeZone("EST5EDT"));
System.out.println("EST5EDT" +dateFormat.format(new Date()));
/* prints EST5EDT2013-Apr-05 02:24:16.471 */
dateFormat = new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss.SSS");
dateFormat.setTimeZone(TimeZone.getTimeZone("EST"));
System.out.println("EST "+dateFormat.format(new Date()));
/*prints EST 2013-Apr-05 01:24:16.472 */
Но приведенный ниже фрагмент произвел шокирующий результат
System.out.println("EST5EDT offset "+TimeZone.getTimeZone("EST5EDT").getRawOffset()/(60*60*1000));
/* prints 5 instead of 4 (DST) */
Может кто-нибудь объяснить, что именно здесь происходит? почему getRawOffset возвращает 5 вместо 4? Как получить смещение часового пояса с DST?
EST
иEST5EDT
. Вместо этого используйтеAmerica/New_York
и связанные с ним идентификаторы. см. здесь и дублирующий пост. - person Matt Johnson-Pint   schedule 05.04.2013