2011-01-08 26 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(); 
}