2016-05-29 100 views
1

iOS應用程序可以使用iOS時鐘訪問事件的時間嗎?有人真的知道時間嗎? (ha!)

這似乎是一個簡單的問題......但在Google搜索或Stackoverflow上找不到任何東西。

Q1。我正在做一個可行性研究,建立一個需要記錄事件發生時刻的應用程序。例如,如果天文學中的事件(例如閃電)發生在16h18m22s(下午4:18,22秒),並且該應用支持用戶記錄事件發生的時間,那麼可以記錄用戶敲擊按鈕的確切時間使用iOS時鐘作爲時間參考? Q2302。 iOS時鐘提供多少精度?是否可以將事件時間記錄爲一秒的十進制數?毫秒? 例如:16h18m22s50c(最後兩位數字代表50釐秒或0.5秒)。

Q3。除了時區差異之外,假設每個人的iOS設備正在讀取完全相同的時間,那麼可以安全地假設,可以稱之爲「通用設備時間」?

Q4。或者,如果這種使用iOS時鐘的方法看起來有點笨重,尤其是在需要超精確度的情況下,從原子鐘服務器獲取反饋會更聰明嗎?

謝謝你對這個的任何意見。不勝感激! 乾杯

+0

用戶可以更改他們設備上的時間 – Paulw11

+0

我投票結束這個問題作爲題外話,因爲大多數問題都是幾秒鐘的搜索或思考回答微不足道。 – Eiko

回答

1

Q1:是的!使用[[NSDate date] timeIntervalSince1970]你得到sub-millisecond precision

問題二:你將按照Q1的說明得到毫秒數。

問題3:由於timeIntervalSince1970給出了它的確切含義(1970年以來的時間間隔),是的 - 這是一個屬性不受時區影響的屬性。 (注意下面的但是

問題4:使用服務器將會破壞任何檢索準確結果的方式,因爲您必須聯繫服務器並等待響應,這將花費大約100ms比設備時鐘的每個不準確性都要好。

用戶可以更改其設備的時間,這使得測量仍然準確,但是沒用,因爲它不再反映實際的時間!你能在這種情況下,做的是

  1. 檢索動作的當前時間戳在設備上
  2. 接觸正確設置時鐘
  3. 比較測量和忽略測量一臺服務器,如果它太遠離/警告用戶糾正他的系統時間。除非您的服務器非常遠或非常緩慢,否則半秒的比較閾值應該可以。
+0

感謝luk2302 - 讚賞這個答案。實現這個工作不會那麼簡單。特別是考慮到我們必須絕對確定每個人都有同一時間。 – user3704103

相關問題