getLastKnownLocation()
メソッドの結果を割り当てる場所オブジェクトがあります。
ここで、緯度と経度を更新できる適切な時間枠を設定するために、これらの座標の年齢を知る必要があります。Location.getTime()
この値を取得するために使用しています。ただし、この値を時間に正確に変換する方法については混乱しています。X時間ごとに位置座標を更新する必要があるため、getTime()
時間単位の値が必要です。
カレンダーを試してみましたが、日付が間違っています。以下のコードは正常に動作しています。
Date date = new Date(location.getTime());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss a");
return sdf.format(date);
それがUNIX エポック タイムです。で日付に変えることができますDate date = new Date(location.getTime())
。
Android の Calendar クラスを使用することもできます。
Calendar calendar = new GregorianCalendar();
calendar.setTimeInMillis(location.getTime());
int hour = calendar.get(Calendar.HOUR_OF_DAY);
タイムスタンプから時間を抽出しようとせず、日付に変換して X 時間を追加します。
Date d = new Date(location.getTime());
Calendar calendar = Calendar.getInstance();
calendar.setTime(d);
calendar.add(Calendar.HOUR, X);
次に、更新の時間を取得します。
calendar.getTime();