1

我有一个位置对象,我将getLastKnownLocation()方法的结果分配给它。

现在我需要知道这些坐标的年龄,以便设置一个合理的时间范围来更新经纬度。我Location.getTime()用来获得这个值。但是,我对如何将这个值转换为小时感到困惑。我需要每 X 小时更新一次位置坐标,因此我需要getTime()以小时为单位的值。

4

3 回答 3

2

我尝试过使用日历,但给出了错误的日期。下面的代码工作正常。

Date date = new Date(location.getTime());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss a");
return sdf.format(date);
于 2018-02-20T11:17:25.930 回答
1

那是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);
于 2015-11-13T17:12:26.990 回答
0

不要尝试从时间戳中提取小时,转换为 Date 并添加 X 小时:

Date d = new Date(location.getTime());

Calendar calendar = Calendar.getInstance();
calendar.setTime(d);
calendar.add(Calendar.HOUR, X);

然后通过以下方式获取更新时间:

calendar.getTime();
于 2015-11-13T17:20:12.053 回答