Joda时间库getdays给出了错误的结果

时间:2016-06-10 08:44:41

标签: java jodatime

public static void main(String args[]) throws ParseException{


    String string = "May 2, 2016";
    DateFormat format = new SimpleDateFormat("MMMM d, yyyy", Locale.ENGLISH);
    Date date = format.parse(string);
    System.out.println(date);
    DateTime dateTime = new DateTime(date);
    DateTime currentDate = new DateTime(Calendar.getInstance().getTime());
    System.out.println(Calendar.getInstance().getTime());
    Period p = new Period(dateTime, currentDate);
    System.out.println(p.getYears());
    System.out.println(p.getMonths());
    System.out.println(p.getDays());

}

}

天数为1

预计今天是2016年6月10日应该是8

2 个答案:

答案 0 :(得分:2)

这里没有错,你得1,因为8天是一周和一天。如果你想在" day"获得8,你必须从周部分(即周* 7 +天)计算它。

答案 1 :(得分:2)

要获得您的期望,您应该使用其他PeriodTypePeriodType.yearMonthDay()

Period p = new Period(dateTime, currentDate, PeriodType.yearMonthDay());

目前,您的代码使用标准(默认)PeriodType,将句点分为年,月,周,日,小时,分钟,秒,毫秒。