我有一个位置对象,我正在为其分配getLastKnownLocation()
方法的结果。
现在我需要知道这些坐标的年龄,以便设置一个合理的时间范围,我可以更新纬度和经度。我正在使用Location.getTime()
来获取此值。但是,我很困惑我应该如何将这个值转换成小时。我需要每X小时更新一次位置坐标,因此我需要以小时为单位getTime()
的值。
答案 0 :(得分:2)
我尝试使用日历,但错误的日期。下面的代码工作正常。
Date date = new Date(location.getTime());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss a");
return sdf.format(date);
答案 1 :(得分:1)
那是UNIX epoch time。您可以将其变为Date date = new Date(location.getTime())
的日期。
您还可以使用Android's Calendar class:
Calendar calendar = new GregorianCalendar();
calendar.setTimeInMillis(location.getTime());
int hour = calendar.get(Calendar.HOUR_OF_DAY);
答案 2 :(得分:0)
不要尝试从时间戳中提取小时,转换为日期并添加X小时:
Date d = new Date(location.getTime());
Calendar calendar = Calendar.getInstance();
calendar.setTime(d);
calendar.add(Calendar.HOUR, X);
然后通过以下方式获取更新时间:
calendar.getTime();