需要使用“ A Min ago”或“ A Hour Ago”之类的字符串进行时差

我是Android开发的新手。

我需要一个帮助将当前时间与一个静态时间转换。

您的帮助将不胜感激。

我有一个这样的字符串

String created_at = "Wed Mar 03 19:37:35 +0000 2010";

我想将其转换为,这意味着当前时间和created_at字符串之间存在差异。

23 mins ago // Example

谢谢,

回答:

只需使用我创建的以下实用工具类并在其构造函数中传递两个date对象,然后使用 方法即可获取相同的对象。

 public class TimeDifference {

int years;

int months;

int days;

int hours;

int minutes;

int seconds;

String differenceString;

public TimeDifference(Date curdate, Date olddate) {

float diff=curdate.getTime() - olddate.getTime();

if (diff >= 0) {

int yearDiff = Math.round( ( diff/ (365l*2592000000f))>=1?( diff/ (365l*2592000000f)):0);

if (yearDiff > 0) {

years = yearDiff;

setDifferenceString(years + (years == 1 ? " year" : " years") + " ago");

} else {

int monthDiff = Math.round((diff / 2592000000f)>=1?(diff / 2592000000f):0);

if (monthDiff > 0) {

if (monthDiff > 11)

monthDiff = 11;

months = monthDiff;

setDifferenceString(months + (months == 1 ? " month" : " months") + " ago");

} else {

int dayDiff = Math.round((diff / (86400000f))>=1?(diff / (86400000f)):0);

if (dayDiff > 0) {

days = dayDiff;

if(days==30)

days=29;

setDifferenceString(days + (days == 1 ? " day" : " days") + " ago");

} else {

int hourDiff = Math.round((diff / (3600000f))>=1?(diff / (3600000f)):0);

if (hourDiff > 0) {

hours = hourDiff;

setDifferenceString( hours + (hours == 1 ? " hour" : " hours") + " ago");

} else {

int minuteDiff = Math.round((diff / (60000f))>=1?(diff / (60000f)):0);

if (minuteDiff > 0) {

minutes = minuteDiff;

setDifferenceString(minutes + (minutes == 1 ? " minute" : " minutes") + " ago");

} else {

int secondDiff =Math.round((diff / (1000f))>=1?(diff / (1000f)):0);

if (secondDiff > 0)

seconds = secondDiff;

else

seconds = 1;

setDifferenceString(seconds + (seconds == 1 ? " second" : " seconds") + " ago");

}

}

}

}

}

}

}

public String getDifferenceString() {

return differenceString;

}

public void setDifferenceString(String differenceString) {

this.differenceString = differenceString;

}

public int getYears() {

return years;

}

public void setYears(int years) {

this.years = years;

}

public int getMonths() {

return months;

}

public void setMonths(int months) {

this.months = months;

}

public int getDays() {

return days;

}

public void setDays(int days) {

this.days = days;

}

public int getHours() {

return hours;

}

public void setHours(int hours) {

this.hours = hours;

}

public int getMinutes() {

return minutes;

}

public void setMinutes(int minutes) {

this.minutes = minutes;

}

public int getSeconds() {

return seconds;

}

public void setSeconds(int seconds) {

this.seconds = seconds;

}

}

以上是 需要使用“ A Min ago”或“ A Hour Ago”之类的字符串进行时差 的全部内容, 来源链接: utcz.com/qa/401207.html

回到顶部