我正在寻找一种方法来将在CoreMotion事件上找到的时间戳转换成正确、高精度的“墙壁日期-时间”。我想将iPhone和Apple上的事件关联起来,所以需要将这些时间戳转换为单个域。
我在互联网上测试了几种方法,比如:https://stackoverflow.com/a/53250802。结果是完全错误的。
还有这个
extension TimeInterval {
static var bootTime = Date().timeIntervalSince1970 - ProcessInfo.processInfo.systemUptime
var unix: TimeInterval {
return (TimeInterval. bootTime + self)
}
}
似乎可以一见钟情。我的测试表明,随着时间的推移,结果unix TimeInterval之间的差异越来越大:
在此图片中,您可以看到收集事件的会话。单个会话事件具有相同的颜色。在上线,您可以看到手表事件和低电话事件。我们看到,watchOS上的时间戳似乎比iPhone上的时间戳前进得慢。这看起来像时间戳可能连接到处理器周期计数?
我的问题是:如何在iPhone和watchOS?上以适当的方式将CoreMotion时间戳转换成日期
发布于 2021-11-17 09:23:15
这实际上是正确的解决办法。
extension TimeInterval {
static var bootTime = Date().timeIntervalSince1970 - ProcessInfo.processInfo.systemUptime
var unix: TimeInterval {
return (TimeInterval. bootTime + self)
}
}
我在watchOS上使用滞后时间戳的问题与杂乱的处理队列连接在一起,因此事件处理程序随着时间的推移越来越滞后。由于某些原因,MotionManager没有对stopMotionDeviceUpdates()做出反应,而且我一次又一次地得到它们,无视这个事实,我关闭了它。我只是试图处理太多的数据-我把传感器的频率提高到了1/100。
https://stackoverflow.com/questions/69989175
复制相似问题