2017-09-01 55 views
0

我想要在两个日期之间的月份差异。一个月计算的差异如如何计算准确的月份差异b w java中的两个日期

start_date = "2017-08-30"; 
end_date = "2017-09-01"; 

DIFF月的是月的0

start_date = "2017-06-05"; 
end_date = "2017-08-20"; 

DIFF是2

和 START_DATE = “2017年8月15日” ; end_date =“2017-08-15”; 月的差异是1

我正在使用日历处理的java日历。谷歌后,我找不到准确的解决方案,任何人都可以帮助我如何计算两个日期之间的正确月份差异。

+0

以毫秒为单位转换这些天,然后执行计算,通过'SimpleDateFormat'class –

+0

恢复格式,请让我知道更多关于条件,日期逻辑的任何舍入或简单计算几个月的差异,如diff 1.5个月? – PSo

+0

[使用Java在几个月内获取两个日期之间的差异](https://stackoverflow.com/questions/16558898/get-difference-between-two-dates-in-months-using-java)和[Java日期月差异](https://stackoverflow.com/questions/1086396/java-date-month-difference) – HAYMbl4

回答

2

用java 8 ofcourse您需要创建从SLQ数据的情况下,LOCALDATE就可以计算出2个Temporal对象

LocalDate start = LocalDate.of(2017, 6, 5); 
LocalDate end = LocalDate.of(2017, 8, 15); 
long delta = ChronoUnit.MONTHS.between(start, end); 

System.out.println(delta); 

之间的区别......但不是使用大问题

乔达(几乎相同java8实际上):

DateTime start = new DateTime().withDate(2017, 6, 5); 
DateTime end = new DateTime().withDate(2017, 8, 15); 

System.out.println(Months.monthsBetween(start , end).getMonths()); 

的破旧java.util.Date然后看到重复的问题

相关问题