Obtenir l'heure GMT avec Android

J'ai été de creuser la question pendant un moment dans StackOverflow
Android obtenez de l'heure UTC Actuelle
et
Comment puis-je obtenir la date actuelle et l'heure UTC ou GMT en Java?

J'ai essayé les deux façons d'obtenir l'heure actuelle de mon téléphone en GMT. Je suis en Espagne, et la différence est GMT+2. Donc, nous allons voir avec un exemple:
1º tenter: j'ai créé un format et l'a appliqué au Système.currentTimeMillis();

    DateFormat dfgmt = new java.text.SimpleDateFormat("yyyy-MM-dd hh:mm:ss");   
    dfgmt.setTimeZone(TimeZone.getTimeZone("GMT")); 
    String gmtTime = dfgmt.format(new Date());
    //Using System.currentTimeMillis() is the same as new Date()
    Date dPhoneTime = dfgmt.parse(gmtTime);
    Long phoneTimeUTC = dPhoneTime.getTime();

J'ai besoin de soustraire que de temps à autre de temps, c'est pourquoi je fais le casting de Long.

    DateFormat df = new java.text.SimpleDateFormat("yyyy-MM-dd hh:mm:ss");          
    Date arrivalDate = df.parse(item.getArrivalDate());
    //the String comes from JSON and is for example:"UTC_arrival":"2011-05-16 18:00:00"
    //which already is in UTC format. So the DateFormat doesnt have the GMT paramater as dfgmt
    diff = arrival.getTime() - phoneTimeUTC ;

J'ai aussi essayé ceci:

    Calendar aGMTCalendar = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
    Long phoneTimeUTC = aGMTCalendar.getTimeInMillis()

Et encore je n'obtiens pas le droit à la différence. Mais si je fais cela:

    Long phoneTimeUTC = aGMTCalendar.getTimeInMillis()-3600000*2;

Elle fonctionne.

Des idées?

Merci beaucoup,

David.

source d'informationauteur Dayerman | 2011-05-16