【发布时间】:2016-04-10 04:26:47
【问题描述】:
关于理解传感器事件中的时间戳有很多问题。
我尝试了自己的方法以获取纳秒的真实事件时间:(System.currentTimeMillis()-SystemClock.uptimeMillis() )*1000000 + event.timestamp
System.currentTimeMillis()-SystemClock.uptimeMillis()
这是以毫秒为单位获取系统启动时间。
System.currentTimeMillis()-SystemClock.uptimeMillis()*1000000
在纳秒内完成。
整个想法是系统启动时间 + 事件正常运行时间。
我使用以下调试:Calendar cl = Calendar.getInstance(TimeZone.getTimeZone("Hongkong"));
cl.setTimeInMillis( ( (System.currentTimeMillis()-SystemClock.uptimeMillis() )*1000000 + event.timestamp) /1000000);
Log.v(LOGTAG, "event happened at: " + cl.get(Calendar.DAY_OF_MONTH) + ":"
+ (cl.get(Calendar.MONTH)+1) + ":" + cl.get(Calendar.YEAR) + " "
+ cl.get(Calendar.HOUR_OF_DAY) + ":" + cl.get(Calendar.MINUTE) + ":"
+ cl.get(Calendar.SECOND));
得到的是错误的时间,相同的日期大约半小时后。
因为不是一小时错误,我认为它与时区无关。
希望看到建议。
谢谢
【问题讨论】:
-
突然错误到 20 小时
标签: android time android-sensors