Итак, [DateUtils.getRelativeTimeSpanString()] [1] в Android SDK отлично подходит для отображения относительных времен, которые были в прошлом.DateUtils.getRelativeTimeSpanString для будущих дат
i.e: 5 дней назад, или 5 минут назад.
Но, похоже, это не так хорошо подходит для дат, которые в будущем. Кажется, он просто печатает дату.
Есть ли какие-либо простые альтернативы для генерации относительных строк временного интервала для дат, которые в будущем (не написав что-то, что определяет дни, часы, минуты, секунды, сравнивая два объекта календаря)?
Что-то длинное: через 5 дней или через 5 минут?
Вот в основном то, что я должен был бы сделать, и это выглядит просто вид грязного (примечание: этот код был написан только для поста и на самом деле не запускать через Java компилятор):
Calendar calendarIO = Calendar.getInstance();
calendarIO.set(2013, 2, 14, 7, 0);
long milliseconds1 = calendarIO.getTimeInMillis();
long milliseconds2 = System.currentTimeMillis();
long diff = milliseconds1 - milliseconds2;
long diffSeconds = diff/1000;
long diffMinutes = diff/(60 * 1000);
long diffHours = diff/(60 * 60 * 1000);
long diffDays = diff/(24 * 60 * 60 * 1000);
String relativeTime = "";
if (diffDays > 1) {
relativeTime = diffDays + " days";
} else if (diffDays > 0) {
relativeTime = diffDays + " days " + diffHours + " hours";
} else if (diffHours > 1) {
relativeTime = diffHours + " hours";
} else if (diffMinutes > 0) {
relativeTime = diffMinutes + " minutes.";
}