Java:为什么java.LocalDate格式在2018-10-25至2019-10-25之间给出0天?

时间:2018-10-11 11:36:00

标签: java datediff period localdate

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 :(得分:2)

结果期间包含1年,0个月和0天。您只需打印天数,即0。

答案 1 :(得分:1)

0是天之间的差。 如果打印p.getYears(),则会看到1。

答案 2 :(得分:0)

正如 soon 所提到的,根据您的情况(P1Y),期限为1年, 在这里,由于天数为0,因此您尝试将1年的天数转换为0。 How to calculate the number of days in a period?

答案 3 :(得分:0)

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);