#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, потом возьмите из них время в миллисекундах и узнаете разницу. Затем парсите.
Комментариев нет:
Отправить комментарий