2016-05-29 10 views
1

iOSアプリケーションはiOSクロックを使用してイベントの時刻にアクセスできますか?誰も本当に時間を知っていますか? (ハ!)

これは簡単な質問ですが、Google検索やここでStackoverflowで何も見つかりませんでした。

Q1。私はイベントが発生する正確な瞬間を記録する必要があるアプリケーションを構築するフィージビリティスタディを行っています。例えば、天文学のイベント(例えば稲妻)が16時18分22秒(4:18 pm、22秒)に発生し、イベントが発生したときに記録することをユーザーがサポートしている場合、ユーザーがボタンをタップした正確な時刻を記録できます時間基準としてiOSクロックを使用していますか?

Q2。 iOSクロックの精度はどれくらいですか?イベントタイムを1秒の小数で記録することは可能ですか?ミリ秒ですか? 例:16h18m22s50c(最後の2桁は50センチ秒または0.5秒を表します)。

Q3。タイムゾーンの違いを除いて、すべてのiOSデバイスがまったく同じ時刻に読み込まれていること、つまり「ユニバーサルデバイス時間」と呼ばれるものがあると仮定することは安全でしょうか?

4。または、iOSクロックを使用したこのアプローチが、特に超精密度が必要な場合には、ちょっとぎこちないように見えますが、原子時計サーバーからフィードを取得するほうが賢明でしょうか?

ありがとうございます。感謝! 乾杯。

+0

ユーザーはデバイスの時刻を変更することができます – Paulw11

+0

質問のほとんどは数秒間の検索や思考で答えるのが簡単なので、この質問をオフトピックとして閉じるよう投票しています。 – Eiko

答えて

1

Q1:はい! [[NSDate date] timeIntervalSince1970]を使用すると、sub-millisecond precision

Q2:Q1で説明したように、ミリ秒単位で取得します。

質問3:timeIntervalSince1970は正確には(1970年以降の時間間隔)、つまりタイムゾーンの影響を受けないプロパティです。 (、以下、に注意してください)

Q4:サーバーを使用すると、サーバーに接続して応答を待つ必要があるため、正確な結果を取得する方法がなくなります。デバイスクロックにはあらゆる不正確さがあります。それはもはや実際の時間を反映していないので、ユーザは、まだ正確なものの役に立たない測定を行い、そのデバイスの時刻を変更することができます

しかし

!あなたは、この場合に行うことができますすることは

  1. が、それはあまりにもあれば、測定を比較し、測定を無視適切に設定クロック
  2. とデバイス
  3. 接触サーバー上のアクションの現在のタイムスタンプを取得していますユーザーのシステム時刻を修正するように警告します。サーバーが非常に遠くまたは非常に遅い場合を除き、0.5秒の比較しきい値は正常でなければなりません。
+0

ありがとうluk2302 - その答えは高く評価されています。この作業を取得することはそれほど簡単なことではありません。特に私たちは誰もが同じ時間を持っていることを絶対に確かめる必要があります。 – user3704103

関連する問題