Android位置getTime到小时

时间:2015-11-13 17:06:00

标签: android gps location gettime

我有一个位置对象,我正在为其分配getLastKnownLocation()方法的结果。

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

3 个答案:

答案 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();