In questo codice memorizzo data e ora (14/05/2010 14:42:00) in un GregorianCalendar impostando GMT come TimeZone.
In seguito visualizzo la stessa coppia data/ora utilizzando la TimeZone impostata sul dispositivo (in questo caso GMT+2).
GregorianCalendar cal= new GregorianCalendar(2010, 5, 14, 14, 42, 00); // 14/05/2010 14:42:00
cal.setTimeZone(TimeZone.getTimeZone("GMT"));
GregorianCalendar now = new GregorianCalendar();
now.setTimeZone(TimeZone.getDefault());
SimpleDateFormat sdf=new SimpleDateFormat("dd/MM/yy HH:mm:ss");
sdf.setTimeZone(TimeZone.getDefault());
Log.v("MyTAG", sdf1.format(cal.getTime())+""); // 14/05/2010 16:42:00 in un telefono con TimeZone GMT+2