2013-03-24 4 views
1

я следующий код:Java TimeZone с DST

public static void main(String[] args) { 
     DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
    //get current date time with Date() 
     Date date = new Date(); 
     String currentDate = dateFormat.format(date); 

     final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
     try { 
      System.out.println(sdf.format(getSomeDate(currentDate,TimeZone.getTimeZone("Asia/Omsk")))); 
     } catch (ParseException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
     } 
    } 

    public static Date getSomeDate(final String str, final TimeZone tz) throws ParseException { 
     final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); 
     sdf.setTimeZone(tz); 
     return sdf.parse(str); 
    } 

Теперь проблема с этим, если я использовать часовой пояс, я хочу (что «Америка/Чикаго»), я получаю совершенно неправильное время , Он делает текущее время +6 вместо -6.

Итак, как бы я мог это исправить, потому что теперь я должен установить часовой пояс из GMT + 6, чтобы получить правильное время & даты для моей программы.

Кроме того, Java автоматически включает настройки DST? Поскольку это используется людьми со всего мира, поэтому некоторые из них с разными временами DST, трудно поддерживать правильное время.

+0

Почему бы не следовать этому ответу? [Java-хау к изменению-GMT-времени до локального времени] (http://stackoverflow.com/questions/10750279/java-how-to-change-gmt-time-to-local-time) – Serdalis

+0

Да, Java обрабатывает DST. Фактически, класс TimeZone имеет несколько методов, связанных с DST. Все настройки DST также используются классом Calendar. – VGR

+0

Вы не устанавливаете TZ на 'sdf', поэтому он форматирует дату, как в вашем местном TZ (по умолчанию TZ JVM). – Blake

ответ

0

Проблема, я полагаю, что вы устанавливаете TimeZone для SimpleDateFormat только один раз в методе getSomeDate(). Попробуйте сделать это для всех экземпляров SimpleDateFormat.

Смежные вопросы