Immer GMT-Zeit mit Android
Ich worden Graben in die Frage für eine Weile in StackOverflow
Android-Holen Sie sich Aktuelle UTC-Zeit
und
Wie bekomme ich das aktuelle Datum und die Uhrzeit in UTC oder GMT in Java?
Habe ich versucht zwei Möglichkeiten, die aktuelle Uhrzeit von meinem Handy in GMT. Ich bin in Spanien und der Unterschied ist GMT+2. Also lasst uns sehen, ein Beispiel:
1º Versuch: ich schuf ein format übernommen und es zu System.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();
Muss ich subtrahieren, mal zu einer anderen Zeit, das ist, warum ich den cast zu Lang.
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 ;
Ich auch so probiert:
Calendar aGMTCalendar = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
Long phoneTimeUTC = aGMTCalendar.getTimeInMillis()
Und ich noch nicht den richtigen Unterschied. Aber wenn ich dies Tue:
Long phoneTimeUTC = aGMTCalendar.getTimeInMillis()-3600000*2;
Es funktioniert OK.
Irgendwelche Ideen?
Vielen Dank,
David.
InformationsquelleAutor Dayerman | 2011-05-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Soweit ich das Lesen im Kalender.getTimeInMillis(); gibt die UTC-Zeit in millis. Ich verwendete den folgenden code, und im Vergleich zu der Epoche, in diese Website http://www.xav.com/time.cgi.
Giora
getInstance()
klar: "erstellt eine neue Instanz des Kalender Unterklasse geeignet für das Standard-Gebietsschema und die Standard-Zeitzone.". WahrscheinlichCalendar.getInstance(TimeZone.getTimeZone("UTC")).getTimeInMillis()
besser funktionieren wirdInformationsquelleAutor Giora
Dies funktioniert sicher!!!
Format angeben, und Sie bekommen es in GMT!
InformationsquelleAutor nithinreddy
Haben Sie einen Blick und sehen, ob das funktioniert.
Ich habe diesen 'code' DateFormat dfgmt = new java.text."=SimpleDateFormat("dd-MM-yyyy HH:mm:ss Z"); dfgmt.setTimeZone(TimeZone.getTimeZone("GMT")); String gmtTime = dfgmt.format(new Date().getTime()); Datum dPhoneTime = dfgmt.parse(gmtTime); Langer phoneTime = dPhoneTime.getTime(); 'code' - und immer noch kein Glück
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT")); cal.hinzufügen(Kalender).SECOND, 0); Datum currentLocalTime = cal.getTime(); DateFormat Datum = new " = SimpleDateFormat("dd-MM-yyy HH:mm:ss z"); Datum.setTimeZone(TimeZone.getTimeZone("GMT")); String localTime = Datum.format(currentLocalTime); System.aus.println(localTime); ich lief einfach, und es scheint zu funktionieren gut für mich, ich bin in Großbritannien so änderte ich es zu EST zu testen und es scheint ok
Hallo Vade, ich bin nicht auf der Suche für die localTime aber für die UTC-Zeit.Wenn bei Spanien ist jetzt 12.25, möchte ich, um 10.25. mit deinem code bin ich noch immer der localtime.
Dayerman, sorry, ich bin etwas verwirrt, was du meinst, der code oben (bearbeitet Antworten) gibt auf meinem computer die aktuelle GMT oder UTC -0 Zeit. Ich habe versucht, mehrere Male, um die Lautstärke meiner Rechner die Zeitzone auf utc+3 oder utc-2 jedes mal, wenn ich den code ausführen es noch gibt die korrekte GMT-Uhrzeit an. zum Beispiel derzeit in Großbritannien (Sommerzeit) 11:30 utc = 10:30, wenn ich die Zeit ändern utc+3 es wird 14:30 Uhr, aber läuft noch, der code zurückgibt, 10:30
InformationsquelleAutor Vade
können Sie immer verwenden:
oder
InformationsquelleAutor alexm
Funktioniert einwandfrei.
InformationsquelleAutor Ramdhas