天兒真好那裏!如何現在和時間之間獲得不同的長的Android
我有一個節目是如何從創建的消息很多時候已經走了任務。例如,我在5分鐘前發送消息,我有很長時間,並且需要在「5分鐘前」顯示消息。
我從System.currentTimeMillis的()當前日期和做創建消息時的日期子,但我怎麼能得到消息,如「5分鐘前」我不知道。
你能幫我嗎?
天兒真好那裏!如何現在和時間之間獲得不同的長的Android
我有一個節目是如何從創建的消息很多時候已經走了任務。例如,我在5分鐘前發送消息,我有很長時間,並且需要在「5分鐘前」顯示消息。
我從System.currentTimeMillis的()當前日期和做創建消息時的日期子,但我怎麼能得到消息,如「5分鐘前」我不知道。
你能幫我嗎?
你知道你的長表示在時間上的變化是毫秒(假設兩個原始消息創建時間戳和當前時間戳均被通過System.currentTimeMillis的()創建的)。
然後,您可以用簡單的數學來毫秒轉換爲分鐘。 1,000毫秒= 1秒,所以60,000 = 1分鐘。
究竟哪裏是你被卡住這個?
轉換的差異在兩次分鐘毫秒,則用字符串「分鐘前」
long timeDifference = messageTime - currentTime;
String message = (timeDifference/60000) + " mins ago";
拼接產生的時間試試這個代碼
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);
}
}
你可以有此靜態方法。
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";
}
而不是toDays =>/60 * 60 * 24,小時/ 60 * 60,分鐘/ 60.感謝您的回答 – Rusfearuth 2012-07-17 05:28:55
你能更寬容嗎?我感到你的評論只有憤怒 – Rusfearuth 2012-07-17 05:30:41
我很抱歉,如果它出現這種方式。 「你在哪裏被卡住」線是在那裏,因爲我不確定那是你在哪裏遇到問題,或者如果你遇到了字符串問題或實際顯示了一條消息。 – 2012-07-17 13:50:55
我想也許,Android框架有一些用來解決這個問題的工具。 – Rusfearuth 2012-07-18 00:20:05