2016-11-29到2017-02-28到底相隔多少个月?

孤好梦中X人 发布于 2016/12/09 16:07
阅读 449
收藏 2

正在直播: LF AI 基金会主办首届AICON 2022>>>

我用java8的date time计算出来的结果是2
用Joda-Time计算出来的结果是3

计算方法如下:

import java.time.LocalDate;
import java.time.Period;
import java.time.temporal.ChronoUnit;

import org.joda.time.DateTime;
import org.joda.time.Months;

public class Test {
	public static void main(String[] args) {
		System.out.println("joda time  : " + Months.monthsBetween(new DateTime("2016-11-29"), new DateTime("2017-02-28")).getMonths());
		System.out.println("java8 time : " + getBetweenMonths(LocalDate.parse("2016-11-29"), LocalDate.parse("2017-02-28")));
		System.out.println("java8 time : " + getBetweenMonths2(LocalDate.parse("2016-11-29"), LocalDate.parse("2017-02-28")));
	}
	public static Integer getBetweenMonths(LocalDate startDate, LocalDate endDate) {
        Period pe = Period.between(startDate, endDate);
        return pe.getYears() * 12 + pe.getMonths();
    }
	public static Long getBetweenMonths2(LocalDate startDate, LocalDate endDate) {
    	return ChronoUnit.MONTHS.between(startDate, endDate);
    }
}



输出结果如下:

joda time  : 3
java8 time : 2
java8 time : 2


请问,正确结果是多少

加载中
0
leo108
leo108
没有标准答案
leo108
leo108
该评论暂时无法显示,详情咨询 QQ 群:点此入群
孤好梦中X人
孤好梦中X人
回复 @leo108 : 肯定是自然月
leo108
leo108
回复 @OSGi狂人 : 因为“月”的定义不明确,30天是一个月还是一个自然月
孤好梦中X人
孤好梦中X人
为什么?
0
雨翔河
雨翔河

你对‘月’是怎么定义的?我说11月,12月,1月,2月,四个月好想也是可以的

孤好梦中X人
孤好梦中X人
自然月
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部