使用GPS(LocationManager)如何获取当前时间?

我正在开发一个GPS应用程序。 这将每隔一小时将位置数据发送到服务器。

在这里我使用以下代码:

location.getLatitude(); location.getLongitude(); location.getTime(); 

使用此代码我正确地获得纬度和经度以及时间,但我得到的是13位数而不是时间。 我做了一些研究,我发现这是当前时间的秒。

所以现在我需要将这个13位数转换成特定的格式。

Location#getTime()返回“此修复的UTC时间,自1970年1月1日以来的毫秒数。”

这与java.util.Date#getTime()完全相同。 我不清楚你想用这个时间数据做什么,但是如果你想将Location的时间转换为java.util.Date ,你可以这样做:

 long time = location.getTime(); Date date = new Date(time); 

现在,它更容易使用。 如果您想创建该日期的特定字符串输出格式,请使用SimpleDateFormat

 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String text = sdf.format(date); System.out.println(text); // prints something like 2011-01-08 13:35:48 

也就是说,如果您想要做的就是获取当前时间(这听起来像是您尝试做的事情),您根本不需要Location

 Date now = new Date(); 

而已!


这有帮助吗? 如果没有,你能澄清一下你想做什么吗?

  Date date = new Date(location.getTime()); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String myDate= sdf.format(date); System.out.println(myDate) 
 String timestamp = parseDate(location.getTime().toDate()); public String parseDate(Date date){ String format = "yyyy-MM-dd HH:mm:ss"; SimpleDateFormat sdf = new SimpleDateFormat(format, Locale.US); return sdf.format(date).toString(); }