何百万もの GPS データ レコードがあり、統計分析に使用したいと考えています。残念ながら、1320303210、1318118326、1302167205 のようなデータを含む GPSTime というフィールドがあります。
これは GPS の日付と時刻だと思います。そのような数値を通常のタイムスタンプ (dd-mm-yyyy hh:mm:ss) に変換する方法について誰か助けてもらえますか
gps.txt
行ごとに UNIX タイムスタンプ (1970-01-01 00:00:00 UTC からの秒数) が含まれます。
$ cat gps.txt
1320303210
1318118326
1302167205
$ while read d; do date -ud @$d '+%F %T'; done <gps.txt
2011-11-03 06:53:30
2011-10-08 23:58:46
2011-04-07 09:06:45
$ TZ=UTC awk '{print strftime("%F %T", $1)}' gps.txt
2011-11-03 06:53:30
2011-10-08 23:58:46
2011-04-07 09:06:45
あなたが言及した形式のGPS時間は、1980年1月6日00:00:00からの秒数です。したがって、これらの数値を通常の年の秒数である 31536000 で割り、1980 を追加すると、探している年の数が得られます。年によっては 366 日あることを忘れないでください。これを考慮する必要があります。同様の方法で、月、日、時間などを計算できます。これらすべての計算の後、UTC 形式で GPS 時刻が取得されます。UTC 時間に変換するには、その時点で有効だった UTC 閏秒数で修正する必要があります。