Как рассчитать количество дней между двумя указанными датами при обработке 3? - PullRequest
0 голосов
/ 07 февраля 2019

Я пытаюсь вычислить количество дней между двумя данными датами, используя обработку 3. Но я столкнулся с проблемой с библиотекой дат.

import java.text.SimpleDateFormat;
import java.util.Date;

import java.time.LocalDate;
import java.time.Month;
import java.time.temporal.ChronoUnit;


Date epoDate = new Date();  
  Date epo = new Date();
    try {
      epoDate = new SimpleDateFormat("yyyy-mm-dd").parse("2015-01-03");
       epo = new SimpleDateFormat("yyyy-mm-dd").parse("2015-04-23");
    }
    catch (Exception e) {
    }

   ChronoUnit.DAYS.between(epo,epoDate);

}

проблема заключается в последней строке между функцией, где она говорит, что требует 2 временных в качестве входных данных?

1 Ответ

0 голосов
/ 07 февраля 2019

Вашу ошибку компилятора можно устранить с помощью , используя правильный тип .Не используйте java.util.Date (как возвращено SimpleDateFormat -parser), но используйте java.time.LocalDate, который также предлагает прямой метод анализа, распознающий формат ISO yyyy-MM-dd.

Вместо

new SimpleDateFormat("yyyy-mm-dd").parse("2015-04-23");

use

LocalDate.parse("2015-04-23");

Другое дело:

Ваш последний пример кода ChronoUnit.DAYS.between(epo,epoDate); не оценивает результат.Вы должны присвоить результат длинному примитиву для дальнейшей обработки.

О вашем комментарии относительно ввода с однозначным месяцем

Вы можете использовать перегруженный parse-метод принимает дополнительный аргумент форматера следующим образом:

LocalDate.parse("2015-4-23", DateTimeFormatter.ofPattern("uuuu-M-dd"));

Он также должен работать с двузначными месяцами.И я рекомендую присвоить объекту форматирования статическую конечную константу по соображениям производительности.

...