关于java:使用joda查找从开始到结束的天数差异?

Finding difference of days from start and end using joda?

本问题已经有最佳答案,请猛点这里访问。

我想从开始日期和结束日期知道有多少天。从我的JSON响应中,我可以得到以下字符串:

1
2
String startDate ="Fri, 10 Jan 2015 23:10:04 +0000";
String endDate ="Mon, 26 Jan 2015 11:26:04 +0000";

我将如何使用Joda计算并返回正确的天数(因此:numOfDays=endDate-startDate)??

1
2
3
4
5
6
7
8
9
public int getNumberOfDays(String startDate, String endDate) {
    String pattern ="EEE, dd MMM yyyy HH:mm:ss +xxxx";
    .....

    // quick test on startDate
    DateTime dateTime = DateTime.parse(startDate, DateTimeFormat.forPattern(pattern));
    System.out.println("The day should be 10 but it yields 9 -->" + dateTime.getDayOfMonth());

}


Joda图书馆的使用日课程

1
2
Days days=Days.daysBetween(startDate.toLocalDate(), endDate.toLocalDate()).getDays();
int noOfDays=days.getDays();

作为替代,我们还可以使用Java 8日期和时间API。

1
2
3
4
5
6
7
8
9
10
11
12
13
public void days_between_two_dates_in_java_with_java8 () {

    LocalDate startDate = LocalDate.now().minusDays(1);
    LocalDate endDate = LocalDate.now();

    long days = Period.between(startDate, endDate).getDays();


    // or

    long days2 = ChronoUnit.DAYS.between(startDate, endDate);

}