Conversion of local time zone to GMT in java

java, timezone

Solution

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));

  }
}

Output

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

GMT Time: 3/10/10 5:51 AM

Problem

Am trying convert date which is in local time zone to GMT, i did some thing like this ``` 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); ``` i am getting GMT 1 o/p in GMT tz but GMT 2 o/p is again changing to local time zone...Can any tel me why? to get the GMT 2 o/p in GMT i did like this : Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT")); calendar.setTime(gmtDate); ``` System.out.println("GMT 3 = "+calendar.getTime()); ``` but still GMT 3o/p am getting in local tz. Please suggest on this.

Original source