Java: Почему формат java.LocalDate дает 0 дней между 2018-10-25 и 2019-10-25? - PullRequest
0 голосов
/ 11 октября 2018
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.Period;
import java.time.format.DateTimeFormatter;


import java.util.Date;
public class DateChal {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        LocalDate start=LocalDate.parse("2018-10-25");
        LocalDate end=LocalDate.parse("2019-10-25");


        Period p=Period.between(start, end);

        System.out.println("Number of days "+p.getDays());

    }

}

o / p: Количество дней 0 Как решить проблему?Объясните, пожалуйста, что не так?

Ответы [ 4 ]

0 голосов
/ 16 января 2019
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy", Locale.ENGLISH);
Date firstDate = sdf.parse("06/30/2017");
Date secondDate = sdf.parse("06/30/2018");

long diffInMillies = Math.abs(secondDate.getTime() - firstDate.getTime());
long diff = TimeUnit.DAYS.convert(diffInMillies, TimeUnit.MILLISECONDS);

System.out.println(diff);
0 голосов
/ 11 октября 2018

0 - это разница между днями.Если вы напечатаете p.getYears() Вы увидите 1.

0 голосов
/ 11 октября 2018

Как уже упоминалось скоро , периоды в вашем случае равны 1 году (P1Y), здесь вы пытаетесь преобразовать 1 год в количестве дней, поскольку количество дней равно 0, в нем указано 0. Как рассчитать количество дней в периоде?

0 голосов
/ 11 октября 2018

Период результата содержит 1 год, 0 месяцев и 0 дней.Вы просто печатаете количество дней, то есть 0.

...