13

iOS では、デバイスの時刻ではなく、実際の時刻 (UTC) を知る必要があります。つまり、ユーザーが時刻や日付を改ざんすることはできません。

ネットワーク接続を必要とするものはすべて良くありません (したがって、タイム サーバーへのアクセスはオプションではありません)。

私の知る限り、これを達成するには2つの理論的な方法があります。

  • GPS 衛星信号のタイムスタンプを使用する
  • キャリアから現在の時刻を取得する

問題は、この情報が iOS の API によって公開されないことです。

別の方法はありますか?

4

3 に答える 3

2

あなたが見つけることができるほとんどの解決策 (時間情報にアクセスするために CoreLocation から GPS データを取得することを含む) は、時間にアクセスするために実際のデバイスに依存しているため、欠陥があります。タイム サーバーに接続する必要があります (NTP サーバーを確認することをお勧めします)。私はコア テレフォニー フレームワークを見ていましたが、ネットワーク時間を提供するものを見つけることができませんでした。バグ レポートに記入し、Apple にクラスの 1 つを拡張して時間を含めるように依頼することもできます。

于 2012-08-17T14:48:00.960 に答える
1

NSTimeZone の secondsFromGMTForDate: と secondsFromGMT を見ることができます。デバイスの時刻が変更されたときに GMT オフセットが増減する場合、これらはタイムスタンプを GMT に修正する (そしておそらく UTC に変換する) 方法を提供します。

于 2012-08-17T13:56:06.740 に答える