2013-05-17 84 views
0

我正在從json的facebook圖形api中獲取時間(「2013-05-17T06:47:48 + 0000」),現在我想將其轉換爲小時跨度。如何將時間格式化爲時間跨度?

例如,如果某人在上述時間更新了自己的狀態,它會在2小時前向我們顯示或類似的內容。

那麼我如何轉換爲時間跨度?

需要幫助。

+1

您可以用'JodaTime'庫有效的結果,並使用其'Period'類,你就能得到'DurationFieldType.months()'和其他格式的結果也像年,日,分也。 –

回答

1

你可以試試這個:

try { 
    long delta = System.currentTimeMillis() - new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").parse("2013-05-17T06:47:48+0200").getTime(); 
    String timeEllapsed = (delta/3600000) + "h " + ((delta/60000) % 60) + "min"; 
    System.out.println("Time ellapsed : " + timeEllapsed); 
} catch (Exception e) { 
    e.printStackTrace(); 
} 
+0

Thnx bro ...幫了我很多... – Saad

+0

上面的時間是爲fb,現在這個時間是爲instagram(「1367911064」),如何處理這個? – Saad

+0

這看起來像秒鐘內的時間戳。在這種情況下,只需用delta = System.currentTimeMillis()替換delta即可。Long.parseLong(「1367911064」)* 1000; – pralonga

0

首先你應該知道你從服務器收到UTC時間。而你的用戶遍佈全球。所以你需要在UTC設備上獲取時間。

要計算任何時間跨度,我建議您閱讀此答案:Android time difference with joda time,它使用JodaTime庫。

0

解決方案:

可以使用JodaTime庫,該庫從here下載。

例子:

我最近創建了一個小型演示應用程序,並上傳到我的GitHub的帳戶。

看看TimeStampDemo。它會根據您的問題要求輸出。

我希望它會有幫助!

0

DateUtil有幾種方法可供選擇,Banes談到了 here。在一些晦澀難懂的語言中有一些錯誤(無法查明哪些錯誤),所以如Mehul所建議的Joda可能會更好,如果你本地化。