私はCMDeviceMotionオブジェクトからCMMotionManagerを取得しています。 CMDeviceMotionのプロパティの1つはタイムスタンプで、NSTimeInterval(double)として表されます。これにより、ドキュメンテーションによると、「サブミリ秒」のタイムスタンプ精度が可能になります。NSTimeIntervalからunixタイムスタンプ
[motionManager startDeviceMotionUpdatesToQueue:motionQueue withHandler:^(CMDeviceMotion *motion, NSError *error) {
NSLog(@"Sample: %d Timestamp: %f ",counter, motion.timestamp);
}
残念ながら、NSTimeIntervalは、その生の形式でそれを使用する重大な課題を装った、最後のデバイスのブート以降に計算されます。
このNSTimeIntervalをUnixのようなタイムスタンプ(UTCタイムゾーン)に変換する作業コードがありますか?
ありがとうございました!
「NSTimeInterval」は、通常、参照日付を基準にしています。これは最後のデバイスのブートからの相対的なものです。 –
"サブミリ秒"でLOL 'NSTimeInterval'は53ビットの精度を持つ' double'で、少なくとも1/2^52 *(1/1/01からの時間)の分解能を与えます。それは現在約80ナノ秒になる。ハンドヘルド電卓では1分と言わざるを得ないだけでなく、10ミリ秒の精度でもタイムスタンプを確実に較正することは不可能です。さらに、センサチップの余裕度で測定が行われていると思われますが、タイムスタンプはカーネルがデータを処理する時間を反映しています。何が混乱している。 – Potatoswatter