tanaka's Programming Memo

プログラミングについてのメモ。

GPSの時間とDateTimeの時間

デバッグ用にGPSの計測時間の代わりに、DateTimeの時間を使った際に変換を失敗して正常に動作しないことがあったので、違いについてメモ。

GPSの計測時間

Input.location.lastData.timestampで取得出来るdouble型の値。
前回取得したGPSのデータの時間を、1970年1月1日午前00:00:00からの経過秒数で表す。

DateTimeの時間

DateTime.Now.Ticksで取得できるlong型の値。
1年1月1日午前00:00:00からの経過時間を100ナノ秒単位で表す。

DateTime→GPSのtimestampの変換

基準時間と単位が違うので、そこを調整する。

// 1970年1月1日00:00:00からの経過情報を日本時間で得る。
DateTime kijun = new DateTime(1970, 1, 1).ToLocalTime();
// 今の時間から基準時間を引き、100ナノ秒を秒に変換する。
double gpstime = (DateTime.Now.Ticks - kijun.Ticks)/ 10000000;