Страницы

Поиск по вопросам

воскресенье, 8 декабря 2019 г.

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

#java #время #временная_зона


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

Например: 

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


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

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


Ответы

Ответ 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)); }

Ответ 2



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

Комментариев нет:

Отправить комментарий