有人真的知道时间吗? (哈!)

时间:2016-05-29 11:22:43

标签: ios iphone time utc

iOS应用可以使用iOS时钟访问事件时间吗?

这似乎是一个简单的问题......但是无法在Google搜索或Stackoverflow上找到任何内容。

Q1。我正在进行一项关于构建应用程序的可行性研究,该应用程序需要记录事件发生的精确时刻。例如,如果天文学中的事件,自然(例如闪电)发生在16h18m22s(下午4:18,22秒),并且应用程序支持用户记录事件发生的时间,则可以记录用户点击按钮的确切时间使用iOS时钟作为时间参考?

Q2。 iOS时钟提供多少精度?是否可以将事件时间记录为一秒的小数?毫秒? 例如:16h18m22s50c(最后两位数代表50厘秒或0.5秒)。

Q3。可以安全地假设,除了时区差异之外,每个人的iOS设备正在读取完全相同的时间,人们可能称之为"通用设备时间"?

Q4。或者,如果这种使用iOS时钟的方法看起来有点笨拙,特别是在需要超精确度的情况下,从原子钟服务器获取数据会更聪明吗?

感谢您对此进行任何输入。不胜感激! 干杯

1 个答案:

答案 0 :(得分:1)

Q1:是的!使用[[NSDate date] timeIntervalSince1970]即可获得sub-millisecond precision

Q2:如第Q1节所述,你将获得毫秒数。

问题3:由于timeIntervalSince1970完全按照它所说的内容(自1970年以来的时间间隔),是的 - 这是一个不受时区影响的属性。 (注意下面的

问题4:使用服务器将破坏任何检索准确结果的方法,因为你必须联系服务器并等待响应,这将花费大约100毫秒,这比设备时钟可能存在的每一个不准确度都要差。

BUT

用户可以更改其设备时间,这使得测量仍然准确但无用,因为它不再反映实际时间!在这种情况下你可以做的是

  1. 检索设备上操作的当前时间戳
  2. 使用正确设置的时钟联系服务器
  3. 比较测量并忽略测量,如果距离太远/警告用户纠正他的系统时间。除非您的服务器距离很远或非常慢,否则半秒的比较阈值应该没问题。