2013-04-04 6 views
20

実際の地理時間を調べるには、私のアプリケーションと同じように、アプリケーションにリアルタイムを添付したいと思います。リアルタイム取得 - アンドロイドのデバイス設定時間がない

ユーザーが自分のデバイスで時刻を変更した場合、私は唯一の真の支配的な時間を取得する必要がありますようにするため - デバイスではなく時間

私の質問は非常に紛らわしいですが、簡単な言葉で理解しよう -

私はデバイスタイムを望んでいませんが、いつでも即時に有効な時間を望みます

+0

のためにあるのですか? – penguat

+0

@penguat UTCかGMTの時刻ではなく、リアルタイムが何であるかを知りたいだけです –

+0

デバイスの現地時間を意味しますか? – penguat

答えて

3

このような時間を得るためのAndroid APIはありません。ユーザーはいつでもデバイス時間を変更することができますが、それについては何もできません。

あなたの最善の策は、あなたが時間を得ることができるwebserviceでサーバーを実行することです。サーバーを制御するので、正しい時刻を返すようにすることができます。あなたはNTP(ネットワークタイムプロトコル)プロトコルを使用する必要が

+0

joda time libを使用できますか? –

7

:ここ

は私が.. somewhr他に発見し、私はそれを使用していたコードです。これはapacheコモンズライブラリを使用します。タイムサーバの

//リスト:ここでhttp://tf.nist.gov/service/time-servers.html

は、JavaコードはあなたがUTC時刻をしたいあなた

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

インターネットが必要です! –

+0

リンクが更新されました:http://tf.nist.gov/tf-cgi/servers.cgi – androidevil

+0

私の場合、timeInfo.getMessage()。getReceiveTimeStamp()。getTime()を使用して有効なタイムスタンプが見つかりました – androidevil

関連する問題