2013-04-04 10 views
20

Wie Sie herausfinden, die Real Geographical Time, wie in meiner Anwendung möchte ich die Echtzeit mit meiner Anwendung anhängen.Get Real Time - Nicht Device Set Zeit in android

So dass, wenn der Benutzer die Zeit in seinem Gerät wechselt dann soll ich nur die reale vorherrschende Zeit bekommen - das Gerät nicht TIME

Meine Frage viel verwirrend ist, sondern versuche, in einer einfachen Sprache zu verstehen -

Ich möchte nicht DEVICE ZEIT, ich möchte REAL PREVILING TIME zu jedem Zeitpunkt

+0

Sie UTC-Zeit wollen? – penguat

+0

@penguat Ich will nur wissen, was ist die Echtzeit, nicht UTC oder GMT Zeit –

+0

Meinst du die Ortszeit am Standort des Geräts? – penguat

Antwort

3

Es gibt keine Android-API, um Sie so eine Zeit zu bekommen. Der Benutzer kann immer die Gerätezeit ändern, nichts, was Sie dagegen tun können.

Ihre beste Wette wäre, einen Server mit einem Webservice zu betreiben, von dem Sie die Zeit bekommen können. Da Sie den Server steuern, können Sie versuchen, sicherzustellen, dass die richtige Uhrzeit zurückgegeben wird.

+0

können wir joda time lib verwenden? –

7

Sie müssen die NTP (Network Time Protocol) -Protokoll verwenden:

Hier ist ein Code, den ich somewhr sonst gefunden .. und ich es benutze. Dies verwendet Apache Commons-Bibliothek.

// Liste der Zeitserver: http://tf.nist.gov/service/time-servers.html

Hier wird Java-Code für Sie

public class TimeLookup { public static final String TIME_SERVER = "time-a.nist.gov"; 

    public static void main(String[] args) throws Exception { 
     NTPUDPClient timeClient = new NTPUDPClient(); 
     InetAddress inetAddress = InetAddress.getByName(TIME_SERVER); 
     TimeInfo timeInfo = timeClient.getTime(inetAddress); 
     long returnTime = timeInfo.getReturnTime(); 
     Date time = new Date(returnTime); 
     System.out.println("Time from " + TIME_SERVER + ": " + time); 
    } 

} 
+6

Benötigt Internet! –

+0

Der Link wurde aktualisiert: http://tf.nist.gov/tf-cgi/servers.cgi – androidevil

+0

In meinem Fall wurde der gültige Zeitstempel gefunden mit: timeInfo.getMessage(). GetReceiveTimeStamp(). GetTime() – androidevil