2011-01-08 93 views
1

我正在开发一个GPS应用程序。它将每隔一小时将位置数据发送到服务器。使用GPS(LocationManager)如何获取当前时间?

在此我使用下面的代码:

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

与此代码我得到纬度和经度正确的时间还可以,但我得到了一些13位数字,而不是时间。我对此做了一些研究,发现这是当前时间的一秒。

所以现在我需要将该13位数字转换为特定格式。

回答

12

Location#getTime()回报“自1月1日此修复程序的UTC时间,以毫秒为单位,1970年”

这与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(); 

这就是它!


这有帮助吗?如果不是,你能澄清你想要做什么吗?

+0

我想在什么时候该位置捕获的时间和地点发送的时候,我已经发送给服务器不是当前的时间 – Jagan 2011-01-10 09:08:49

+0

马特感谢您的宝贵答复..它帮助我很多 – Jagan 2011-01-10 09:09:35

2
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) 
1
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(); 
}