2016-08-29 4 views
1

EST время преобразования с летнее время он приходит ошибочновремя преобразования EST летнее время

private void timeConversion() { 
    String s = "2016-08-29 1:40:00 AM"; 
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss a", Locale.ENGLISH); 
    df.setTimeZone(TimeZone.getTimeZone("EST")); 
    Date timestamp = null; 
    try { 
     timestamp = df.parse(s); 
     df.setTimeZone(TimeZone.getDefault()); 
     System.out.println(df.format(timestamp)); 
    } catch (ParseException e) { 
     e.printStackTrace(); 

    } 
} 
+1

что ваш ожидаемый результат и то, что вы получаете ?? –

+0

1 час другой bz летнее время не хватает. –

ответ

1

В часовой пояс EST не уважает любое летнее время коррекций:

TimeZone estTz = TimeZone.getTimeZone("EST"); 
System.out.println(estTz.useDaylightTime()); // prints 'false' 

Это часовой пояс EST всегда будет иметь смещение -5: 00 часов для UTC.

Возможно, это связано с тем, что некоторые места в Канаде, Мексике и Центральной Америке (Панама) не используют DST, но используют EST круглый год.

Если вы хотите часовой пояс с DST смещения, вы должны использовать что-то вроде США/Восточная или Америке/New_York и т.д.:

TimeZone usEasternTz = TimeZone.getTimeZone("US/Eastern"); 
System.out.println(usEasternTz.useDaylightTime()); // prints 'true' 
Смежные вопросы