Android中如何在现在和时间之间取得不同

时间:2012-07-17 03:58:34

标签: java android datetime

G'day那里!

我的任务就是显示已创建消息的时间已经消失了多少。例如,我发送消息5分钟前,我有时间,我需要显示消息“5分钟前”。

我从System.currentTimeMillis()获取当前日期,并在创建消息时执行日期的子日期,但是如何获取“5分钟前”我不知道的消息。

你能帮帮我吗?

4 个答案:

答案 0 :(得分:2)

将两次的差异从毫秒转换为分钟,然后将结果时间与字符串“分钟前”连接起来

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

答案 1 :(得分:1)

您知道表示时间变化的long表示以毫秒为单位(假设原始消息创建的时间戳和当前时间戳都是通过System.currentTimeMillis()创建的。)

然后,您可以使用简单的数学运算将毫秒转换为分钟。 1,000毫秒= 1秒,因此60,000 = 1分钟。

你到底在哪里陷入困境?

答案 2 :(得分: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);
  }
}

答案 3 :(得分: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";


}