Java 如何以月和日为单位获取日期
抱歉,我尝试了引用的方法。但我还是找不到解决办法。如何获取两个不同日期之间的输出月份和天数?任何帮助都将不胜感激。谢谢 p/s:JodaTime不适用 到目前为止我都试过了Java 如何以月和日为单位获取日期,java,date,Java,Date,抱歉,我尝试了引用的方法。但我还是找不到解决办法。如何获取两个不同日期之间的输出月份和天数?任何帮助都将不胜感激。谢谢 p/s:JodaTime不适用 到目前为止我都试过了 SimpleDateFormat formatter= new SimpleDateFormat("dd-MM-yyyy"); String start = "03-01-2015"; String end = "01-11-2014"; Date startdate = formatte
SimpleDateFormat formatter= new SimpleDateFormat("dd-MM-yyyy");
String start = "03-01-2015";
String end = "01-11-2014";
Date startdate = formatter.parse(start);
Date enddate = formatter.parse(end);
Calendar startCalendar = new GregorianCalendar();
startCalendar.setTime(startdate);
Calendar endCalendar = new GregorianCalendar();
endCalendar.setTime(enddate);
int diffYear = endCalendar.get(Calendar.YEAR) - startCalendar.get(Calendar.YEAR);
int diffMonth = diffYear * 12 + endCalendar.get(Calendar.MONTH) -startCalendar.get(Calendar.MONTH);
在java8中,您可以这样做:
LocalDate startDate = LocalDate.of(2004, Month.JANUARY, 1);
LocalDate endDate = LocalDate.of(2005, Month.JANUARY, 1);
long monthsInYear2 = ChronoUnit.MONTHS.between(startDate, endDate);
(来源:)希望这就是你想要的
int diffDay= endCalendar.get(Calendar.DAY_OF_MONTH) -startCalendar.get(Calendar.DAY_OF_MONTH);
System.err.println("diffMonth==="+diffMonth +" Month(s) and " + diffDay + " Day(s)");
嗨,维萨姆海迪。。我从代码中发现了一些错误。。如果日期从2016年8月2日到2017年2月2日,sql结果显示:12个月-6天,它应该显示11个月和25天。。如何修复此hm?@user3835327上述日期“2016年2月8日至2017年2月2日”将为您提供6个月的时间,请注意,上述代码中指定的日期格式为“dd-MM-yyyy”格式,而不是“MM-dd-yyyy”