Obtenir l'heure GMT avec Android

J'ai été en train de creuser la question pendant un certain temps dans StackOverflow Android pour obtenir l'heure UTC actuelle et Comment puis-je obtenir la date et l'heure actuelles en UTC ou GMT en Java?

J'ai essayé 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. Voyons donc avec un exemple: 1º tentative: j'ai créé un format et l'ai appliqué à System.currentTimeMillis ();

  • Quand surfaceDestroyed () se produit
  • L'application GWT fonctionne-t-elle bien dans le navigateur Android?
  • La visionneuse de liste Android permet de supprimer comme dans l'application Gmail
  • Comment espionner correctement une activité
  • Impossible d'installer .apk après le décodage et la reconstruction (Apktool, Apkstudio)
  • Android: quelle est la différence entre Bundle Vs java.util collections comme HashMap
  • 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(); 

    Je dois soustraire ce temps à un autre moment, c'est pourquoi je fais le casting à 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 également essayé ceci:

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

    Et toujours, je n'ai pas la bonne différence. Mais si je fais ceci:

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

    Cela fonctionne bien.

    Des idées?

    Merci beaucoup,

    David.

  • Comment fonctionne MenuItem.SHOW_AS_ACTION_IF_ROOM?
  • Gradle émet une erreur "Impossible de créer un plugin de type 'AppPlugin'"
  • Résolution d'écran Android
  • Comment réduire le code - limite de méthode de 65k dans dex
  • Android Unknown Command 'crunch'
  • Remplacez un fragment par un autre fragment dans le TabHost
  • 5 Solutions collect form web for “Obtenir l'heure GMT avec Android”

    Dans la mesure où j'ai lu le calendrier.getTimeInMillis (); Renvoie l'heure UTC en millis. J'ai utilisé le code suivant et l'ai comparé à l'Epoque sur ce site http://www.xav.com/time.cgi .

     public int GetUnixTime() { Calendar calendar = Calendar.getInstance(); long now = calendar.getTimeInMillis(); int utc = (int)(now / 1000); return (utc); } 

    Giora

    Cela fonctionne bien!

      SimpleDateFormat dateFormatGmt = new SimpleDateFormat("dd:MM:yyyy HH:mm:ss"); dateFormatGmt.setTimeZone(TimeZone.getTimeZone("GMT")); System.out.println(dateFormatGmt.format(new Date())+""); 

    Spécifiez le format, et vous l'obtiendrez en GMT!

      Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT")); Date currentLocalTime = cal.getTime(); DateFormat date = new SimpleDateFormat("dd-MM-yyy HH:mm:ss z"); date.setTimeZone(TimeZone.getTimeZone("GMT")); String localTime = date.format(currentLocalTime); System.out.println(localTime); 

    Jetez un oeil et voyez si cela fonctionne.

    Vous pouvez toujours utiliser:

     Calendar mCalendar = Calendar.getInstance(TimeZone.getTimeZone("gmt")); long millies = mCalendar.getTimeInMillis(); 

    ou

     Calendar mCalendar = Calendar.getInstance(TimeZone.getTimeZone("utc")); long millies = mCalendar.getTimeInMillis(); 

    Produit: 2016-08-01 14:37:48 UTC

      final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z"); dateFormat.setTimeZone(TimeZone.getTimeZone("UTC")); 

    Fonctionne bien.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.