fresh digitable

めんどくさかったなってことを振り返ったり振り返らなかったりするための記録

Xperia Z1のSensorEventのタイムスタンプがナノ秒単位のUNIXタイムだった件

以前、SensorEventのtimestampについてのメモ - fresh digitableで、SensorEventのタイムスタンプはシステム起動からのナノ秒単位の時間なので何時何分におきたイベントか知りたいときは一工夫必要だというようなことを書いた。しかし、Xperia Z1(Android 4.2.2)で表題のようなことを確認した。件のアルゴリズムで時刻を計算していたらとんでもなく先の日付になっていた。

件のアルゴリズムは、SensorEvent.timestampSystem.nanoTime()とは同じ起源の時間表現だという前提であったのだが、それもXperiaZ1の世界では違うということである。そういうことは大抵急いでいる時に発覚するので(したので)なかなかの衝撃だった。

確かに、公式のリファレンスにはSensorEvent.timestampにはナノ秒の時間が格納されているよ的なことしか書いていないが、少なくとも2通りの表現方法が存在しているのはちょっとこまる。どうやって場合分けすればいいんだろう…桁数を見ればいいのかな…しかしなんかもにょる。