我有一个位置对象,我将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);
不要尝试从时间戳中提取小时,转换为 Date 并添加 X 小时:
Date d = new Date(location.getTime());
Calendar calendar = Calendar.getInstance();
calendar.setTime(d);
calendar.add(Calendar.HOUR, X);
然后通过以下方式获取更新时间:
calendar.getTime();