java Date 计算过去了多长时间

Sup*_*ale 2 java math datetime android date

我有一个功能:

  public String getTimePast(Date d) {
  //insertcodehere
 }
Run Code Online (Sandbox Code Playgroud)

它接受消息的日期,并且必须根据当前时间以特定格式返回已经过去的时间。例如,如果刚刚发布,则会显示“现在”

如果已经过去 4 分钟,则会显示“4 分钟” 如果已经过去 23 小时,则会显示“23 小时”等等

以下是我尝试做的方法,但没有成功!我怎样才能做到这一点?谢谢你!

public String getTimePast(Date d) {


    Calendar c = Calendar.getInstance();

    int hr = c.get(Calendar.HOUR_OF_DAY);
    int min = c.get(Calendar.MINUTE);
    int day = c.get(Calendar.DAY_OF_MONTH);
    int month = c.get(Calendar.MONTH);
    int year = c.get(Calendar.YEAR);


    if (year == d.getYear()) {
        if (month == d.getMonth()) {
            if (day == d.getDay()) {
                if (hr == d.getHours()) {
                    if (min == d.getMinutes()) {
                        return "Now";
                    } else {
                        return min - d.getMinutes() + "m";
                    }
                } else {
                    return hr - d.getHours() + "hr";

                }
            } else {
                return day - d.getDay() + "d";
            }
        } else {
            return month - d.getMonth() + "m";
        }
    } else {
        return year - d.getYear() + "y";
    }


}
Run Code Online (Sandbox Code Playgroud)

Sca*_*bat 5

如何使用另一个日历对象来简单地找出差异

Calendar now = Calendar.getInstance();
Calendar start = Calendar.getInstance();
start.setTime (d);

long milliseconds1 = start.getTimeInMillis();
  long milliseconds2 = now.getTimeInMillis();
  long diff = milliseconds2 - milliseconds1;
  long diffSeconds = diff / 1000;
  long diffMinutes = diff / (60 * 1000);
  long diffHours = diff / (60 * 60 * 1000);
  long diffDays = diff / (24 * 60 * 60 * 1000);
  System.out.println("\nThe Date Different Example");
  System.out.println("Time in milliseconds: " + diff
 + " milliseconds.");
  System.out.println("Time in seconds: " + diffSeconds
 + " seconds.");
  System.out.println("Time in minutes: " + diffMinutes 
+ " minutes.");
  System.out.println("Time in hours: " + diffHours 
+ " hours.");
  System.out.println("Time in days: " + diffDays 
+ " days.");
  }
Run Code Online (Sandbox Code Playgroud)

请参阅http://www.roseindia.net/java/beginners/DateDifferent.shtml