我得到CMDeviceMotion对象从CMMotionManager。 CMDeviceMotion的其中一个属性是时间戳,它表示为NSTimeInterval(double)。根据文档,这允许“亚毫秒”时间戳精度。NSTimeInterval到unix时间戳
[motionManager startDeviceMotionUpdatesToQueue:motionQueue withHandler:^(CMDeviceMotion *motion, NSError *error) {
NSLog(@"Sample: %d Timestamp: %f ",counter, motion.timestamp);
}
不幸的是,NSTimeInterval是自去年设备启动计算,冒充显著挑战原始形式使用它。
有没有人有工作代码将此NSTimeInterval转换为像时间戳(UTC时区)的Unix?
谢谢!
'NSTimeInterval'通常是相对于参考日期。你从哪里得到这个相对于最后一次设备启动? –
LOL在“亚毫秒”。 'NSTimeInterval'是一个具有53位精度的“double”,分辨率至少为1/2^52 *(自1/1/01以来的时间)。目前约为80纳秒。他们不仅没有获得任何*精度,而且手持式计算器在一分钟内会告诉他们,但现在不可能用其他任何东西,甚至10毫秒精度来可靠地校准时间戳。此外,我怀疑测量是在传感器芯片的闲置状态下进行的,而时间戳反映了内核处理数据的时间。真是一团糟。 – Potatoswatter