2010-11-30 6 views
2

CLLocationManagerを使用して、iPod/iPhoneの現在の場所を取得しています。iPhone:CLLocationManagerからの時間

- (void)locationManager:(CLLocationManager *)manager 
    didUpdateToLocation:(CLLocation *)newLocation 
      fromLocation:(CLLocation *)oldLocation { 

私は、このメソッドから返されるCLLocationのタイムスタンプ値についてのカップルの質問がある:私は実装するデリゲートは、このメソッドを持っています。

たとえば、次のように表示されます。startingLocation.timestampこのときの表示は2010-11-39 20:57:19 GMTです。

  1. 私はタイムスタンプがGMTになることを保証していますか?
  2. このタイムスタンプを取得するデバイスはどこですか? GPSの地理的データを取得している場合、これはGPSのタイムスタンプですか? (これはデバイス間で非常に正確で一貫性があります)。ユーザーが自分のデバイスで奇妙な時間設定をしている場合、これは時間に影響しますか?

答えて

2

タイムスタンプは、抽象的な瞬間を表し、特定のタイムゾーンまたはカレンダーシステムが関連付けられていないNSDateオブジェクトです。ロギングコマンドを使用すると、その内部値をGMTに変換して人間が読めるようにしますが、それはGMTの日付ではありません。その内部の値を、NSCalendarNSDateFormatterクラスを使用して、任意のカレンダーまたはタイムゾーンに変換することができます。

Appleは、タイムスタンプがGPSに由来していると仮定する理由はありません。その目的は、場所の読書の年齢を伝えることです。したがって、論理的にシステム時間から刻印されます。そうでなければ、確実に年齢を計算することができません(または、年齢をGPS以外の値と比較する)。あなたは確かに見つけるためにいくつかのテストを行うことができます。

+0

タイムスタンプは「抽象的な瞬間であり、特定のタイムゾーンまたはカレンダーシステムが関連付けられていない」*であるため、それを比較して何歳であるかを教えてください。 – sixtyfootersdude

+0

+ [NSDate date]。同じ形式の現在のシステム時刻です。それらを比較するか、より一般的な日付を抽出するためのさまざまな方法については、NSDateのマニュアルを参照してください。 – grahamparks

関連する問題