私は、jsonリンク経由でサーバーからデータを取得するアイテムのリストを持っています。属性の1つは、アイテムが作成された日時です。json日付の経過時間を知る方法
created_at: "2017-05-13T08:53:40Z"
私は、各項目の上ではなく=>
1分前のフォーマットのようなFacebookのステータスでのTextViewで、この時間を表示したいです| 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
@Henry更新を確認する –
最初の問題は、1つのタイムスタンプの時間部分と完全な2番目のタイムスタンプを比較することです。 – Henry