如何在Joda中使用JDK GregorianCalendar对象日期

And*_*eaF 4 java jodatime gregorian-calendar

我正在尝试使用Joda库,因为使用Java本机方法计算周期非常麻烦,而且我的所有尝试都给出了不准确的结果

我看过这个样本

int n = Days.daysBetween(start.toLocalDate(), end.toLocalDate()).getDays();
Run Code Online (Sandbox Code Playgroud)

由于我所有的班级都管理GregorianCalendar,因此我需要一种计算支持GregorianCalendar的天数的方法,例如

 public int countDays(GregorianCalendar start, GregorianCalendar end){
     //convert to joda start and end
     ...
     return Days.daysBetween(start.toLocalDate(), end.toLocalDate()).getDays();
 }
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:如何将GregorianCalendar对象转换和重新转换为Joda管理的对象而又没有副作用?

Dav*_*rad 5

使用DateTime带有的构造函数,该构造函数Object可以“ 包括ReadableInstant,String,Calendar和Date。 ”它也特别提及GregorianCalendar。

public int countDays(GregorianCalendar gregStart, GregorianCalendar gregEnd) {
    DateTime start = new DateTime(gregStart);
    DateTime end = new DateTime(gregEnd);
    return Days.daysBetween(start, end).getDays();
}
Run Code Online (Sandbox Code Playgroud)