2012-07-17 19 views
-7

天兒真好那裏!如何現在和時間之間獲得不同的長的Android

我有一個節目是如何從創建的消息很多時候已經走了任務。例如,我在5分鐘前發送消息,我有很長時間,並且需要在「5分鐘前」顯示消息。

我從System.currentTimeMillis的()當前日期和做創建消息時的日期子,但我怎麼能得到消息,如「5分鐘前」我不知道。

你能幫我嗎?

回答

1

你知道你的長表示在時間上的變化是毫秒(假設兩個原始消息創建時間戳和當前時間戳均被通過System.currentTimeMillis的()創建的)。

然後,您可以用簡單的數學來毫秒轉換爲分鐘。 1,000毫秒= 1秒,所以60,000 = 1分鐘。

究竟哪裏是你被卡住這個?

+0

你能更寬容嗎?我感到你的評論只有憤怒 – Rusfearuth 2012-07-17 05:30:41

+0

我很抱歉,如果它出現這種方式。 「你在哪裏被卡住」線是在那裏,因爲我不確定那是你在哪裏遇到問題,或者如果你遇到了字符串問題或實際顯示了一條消息。 – 2012-07-17 13:50:55

+0

我想也許,Android框架有一些用來解決這個問題的工具。 – Rusfearuth 2012-07-18 00:20:05

2

轉換的差異在兩次分鐘毫秒,則用字符串「分鐘前」

long timeDifference = messageTime - currentTime;
String message = (timeDifference/60000) + " mins ago";

1

拼接產生的時間試試這個代碼

import java.util.Calendar; 

public class DateDifferent{ 
    public static void main(String[] args){ 
    long diff = yourMilliseconds - nowMilliseconds; 
    long diffSeconds = diff/1000; 
    long diffMinutes = diff/(60 * 1000); 
    long diffHours = diff/(60 * 60 * 1000); 
    long diffDays = diff/(24 * 60 * 60 * 1000); 
    } 
} 
1

你可以有此靜態方法。

public static String getElapsedTime(Date oldDate) { 
    long duration = System.currentTimeMillis() - oldDate.getTime(); 
    long seconds = TimeUnit.MILLISECONDS.toSeconds(duration); 
    long days = TimeUnit.MILLISECONDS.toDays(duration); 
    long hours = TimeUnit.MILLISECONDS.toHours(duration); 
    long minutes = TimeUnit.MILLISECONDS.toMinutes(duration); 

    if (days > 0) { 
     return days + " days"; 
    } 
    if (hours > 0) { 
     return hours + " hrs"; 
    } 
    if (minutes > 0) { 
     return minutes + " minutes"; 
    } 

    return seconds + " seconds"; 


} 
+0

而不是toDays =>/60 * 60 * 24,小時/ 60 * 60,分鐘/ 60.感謝您的回答 – Rusfearuth 2012-07-17 05:28:55

相關問題