tags:

views:

589

answers:

2

Hello,

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.

+2  A: 

After 'parse' you have to again format it before printing, e.g.:

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

EDIT: The reason is your gmtStrDate doesn't store any timezone information

nanda
Hello Nanda,Thanks for the update, but here if i again format it i will get it as String right, but i want to get in Date so i was trying to parse it.If u have any idea about this please let me know.
Sreekar
Hi... if that's your intention, you've got the correct result. You have to print it correctly (in GMT) though. System.out.println("GMT 3 = " + sdf.format(calendar.getTime()));calendar.getTime() contains the data you want.
nanda
A: 

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

satya