Преобразование местного часового пояса в GMT в Яве - PullRequest
4 голосов
/ 13 января 2010

Я пытаюсь преобразовать дату в местном часовом поясе в GMT, я сделал что-то вроде этого

SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
        sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
        String gmtStrDate = sdf.format(Calendar.getInstance().getTime());

        System.out.println("GMT 1"+gmtStrDate);

        Date gmtDate = sdf.parse(gmtStrDate);

        System.out.println("GMT 2"+gmtDate);

Я получаю GMT 1 o / p в GMT tz, но GMT 2 o / p снова меняется на местный часовой пояс ... Кто-нибудь может сказать, почему?

чтобы получить GMT 2 o / p в GMT, я сделал это так:

Календарь календарь = Calendar.getInstance (TimeZone.getTimeZone ("GMT")); calendar.setTime (gmtDate);

        System.out.println("GMT 3 = "+calendar.getTime());

, но по-прежнему время по Гринвичу 30:00 / p. Пожалуйста, предложите это.

Ответы [ 2 ]

15 голосов
/ 10 марта 2010
import java.util.*;
import java.text.*;
public class CurrentTimeToGMT{
  public static void main(String args[]){
    Date date = new Date();
    DateFormat gmtFormat = new SimpleDateFormat();
    TimeZone gmtTime = TimeZone.getTimeZone("GMT");
    gmtFormat.setTimeZone(gmtTime);
    System.out.println("Current Time: "+date);
    System.out.println("GMT Time: " + gmtFormat.format(date));

  }
}

выход

Current Time: Wed Mar 10 11:21:18 IST 2010

GMT Time: 3/10/10 5:51 AM
2 голосов
/ 13 января 2010

После 'разбора' вы должны снова отформатировать его перед печатью, например ::

System.out.println("GMT 2"+sdf.format(gmtDate));

EDIT: Причина в том, что ваш gmtStrDate не хранит информацию о часовом поясе

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...