Разница во времени на Java

297
09 апреля 2017, 01:46

Как задать 2 даты и посмотреть сколько времени между ними прошло.

Например:

01.01.2000 10:10:10
02.03.2005 20:10:20

и получить в ответ: 1 день 2 месяца 5 лет 10 часов 0 минут 10 секунд

И потом понадобится сортировка от самого большого времени к самому маленькому.
Пишу на Java 7.

Answer 1

Это легко сделать с помощью org.joda.time.Period

private static String strDiff(DateTime from, DateTime to) {
    Period period = new Period(from, to, PeriodType.yearMonthDayTime());
    return 
      period.getYears() + "y " +
      period.getMonths() + "m " + 
      period.getDays() + "d " + 
      period.getHours() + "h " + 
      period.getMinutes() + "min " + 
      period.getSeconds() + "s" + 
      "";
}
public static void main(String[] args) {
    DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
    DateTime start = formatter.parseDateTime("2017-04-03 03:00:00");
    DateTime end   = formatter.parseDateTime("2017-04-11 03:00:00");
    System.out.println(strDiff(start, end));
}
Answer 2

Создайте два Date, потом возьмите из них время в миллисекундах и узнаете разницу. Затем парсите.

READ ALSO
Как в WebView загрузить картинку из памяти?

Как в WebView загрузить картинку из памяти?

Создаю картинку вот так:

290
Выборка элементов из XSLT

Выборка элементов из XSLT

В моем приложении использую XML и конфигурацию для него XSLTЗадача заключается в обработке из XML данных, которые используются XSLT

291
странное поведение FragmentPagerAdapter

странное поведение FragmentPagerAdapter

Есть фрагмент с TabLayout с ViewPager, который содержит в себе RecyclerView на каждой вкладкеПри обновлении в RecyclerView через adapter

281