【发布时间】:2017-05-14 07:28:14
【问题描述】:
我有一个项目列表,它通过 json 链接从服务器获取其数据,其中一个属性是创建项目的日期/时间,如下所示:
created_at: "2017-05-13T08:53:40Z"
我想在每个项目顶部的 textview 中显示这次,但在 Facebook 状态中显示格式 =>
1 分钟前 | 2 小时前 | 4 天前 | 5 个月前等。
我该怎么做。!?
更新
这是我最近的尝试。 '_'
public String getOrderTime() {
GregorianCalendar now = new GregorianCalendar();
Date time = getTime(); // getTime is coming from json
Log.i("Json Time ", time + "");
long MILLIS_PER_DAY = 24 * 60 * 60 * 1000;
long timePortion = time.getTime() % MILLIS_PER_DAY;
Log.i("New Json Time ", timePortion + "");
Log.i("Time Now ", now.getTimeInMillis() + "");
String elapsed_time = DateUtils.getRelativeTimeSpanString(
timePortion,
now.getTimeInMillis(),
DateUtils.SECOND_IN_MILLIS)
.toString();
Log.i("Elapsed Time", elapsed_time);
return elapsed_time;
}
这是日志,显然有问题
I/Json Time: Sun May 14 03:27:22 EDT 2017
I/New Json Time: 26842000
I/Time Now: 1494747376756
I/Elapsed Time: Jan 1, 1970
更新 2
新方法
public String getOrderTime() {
long end_time = theTime().getTime(); // json time
long right_now = System.currentTimeMillis(); // right now
Log.i("Time Now ", right_now + "");
Log.i("Json Time ", end_time + "");
long difference = right_now - end_time;
Log.i("Elapsed Time", difference + "");
if (difference < 60) {
Log.i("Time in Minutes", difference + "m");
return difference + "m";
} else {
difference /= 60;
if (difference < 24) {
Log.i("Time in Hours", difference + "h");
return difference + "h";
} else {
difference /= 30;
Log.i("Time in Months", difference + "mo");
return difference + "mo";
}
}
日志
I/Time Now: 1494762022853
I/Json Time: 1494758529000
I/Elapsed Time: 3493853
I/Time in Months: 1941mo
【问题讨论】:
-
解析日期并将其与当前日期进行比较。你在什么时候遇到了困难?
-
@Henry 检查更新
-
第一个问题是仅将一个时间戳的时间部分与完整的第二个时间戳进行比较。
-
有没有机会你可以展示如何解决这个问题,我真的可以使用你的帮助!
标签: android json date time elapsedtime