我目前正在开发一个Android应用程序。我必须记录加速度传感器事件的事件坐标与事件时间。我得到了传感器事件时间戳,例如“3497855005850”,但是我无法将事件时间戳转换为用户可读的日期时间格式。

如何将SensorEvent时间戳转换为Unix时间戳?

最佳答案

传感器时间戳实际上是正常运行时间的纳秒,而不是系统时间(以纳秒为单位)。参见SensorEvent.timestamp to absolute (utc) timestamp?

理论上,您可以使用以下命令将传感器时间戳转换为毫秒级的时间:

long timeInMillis = (new Date()).getTime()
                    + (sensorEvent.timestamp - System.nanoTime()) / 1000000L;

您甚至可以将(new Date()).getTime()调用与两个System.nanoTime()调用括起来,然后对它们进行平均以更接近实际偏移量。

然后,您可以将传感器时间格式化为日期和时间。

07-24 09:49
查看更多