2016-05-29 103 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

相关问题