mirror of
https://gitee.com/dromara/hutool.git
synced 2025-04-05 17:37:59 +08:00
修复CalendarUtil.isSameMonth没有判断公元前导致不一致的问题
This commit is contained in:
parent
1a646df52a
commit
88c959c4ed
@ -2,7 +2,7 @@
|
||||
# 🚀Changelog
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
# 5.8.16.M1 (2023-03-20)
|
||||
# 5.8.16.M1 (2023-03-23)
|
||||
|
||||
### 🐣新特性
|
||||
* 【core 】 改进Calculator.conversion,兼容乘法符号省略写法(issue#2964@Github)
|
||||
@ -17,6 +17,7 @@
|
||||
* 【core 】 修复FileMagicNumber长度判断问题导致的越界异常(issue#I6MACI@Gitee)
|
||||
* 【core 】 修复DateUtil针对ISO8601时间格式部分场景下的解析存在问题(issue#2981@Github)
|
||||
* 【core 】 修复JSONUtil.toBean可能的空指针问题(issue#2987@Github)
|
||||
* 【core 】 修复CalendarUtil.isSameMonth没有判断公元前导致不一致的问题(issue#3011@Github)
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
# 5.8.15 (2023-03-09)
|
||||
|
@ -395,7 +395,8 @@ public class CalendarUtil {
|
||||
}
|
||||
|
||||
/**
|
||||
* 比较两个日期是否为同一月
|
||||
* 比较两个日期是否为同一月<br>
|
||||
* 同一个月的意思是:ERA(公元)、year(年)、month(月)都一致。
|
||||
*
|
||||
* @param cal1 日期1
|
||||
* @param cal2 日期2
|
||||
@ -407,7 +408,9 @@ public class CalendarUtil {
|
||||
throw new IllegalArgumentException("The date must not be null");
|
||||
}
|
||||
return cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR) && //
|
||||
cal1.get(Calendar.MONTH) == cal2.get(Calendar.MONTH);
|
||||
cal1.get(Calendar.MONTH) == cal2.get(Calendar.MONTH) &&
|
||||
// issue#3011@Github
|
||||
cal1.get(Calendar.ERA) == cal2.get(Calendar.ERA);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -0,0 +1,23 @@
|
||||
package cn.hutool.core.date;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Calendar;
|
||||
|
||||
public class Issue3011Test {
|
||||
@Test
|
||||
public void isSameMonthTest() {
|
||||
// https://github.com/dromara/hutool/issues/3011
|
||||
// 判断是否同一个月,还需考虑公元前和公元后的的情况
|
||||
// 此处公元前2020年和公元2021年返回年都是2021
|
||||
final Calendar calendar1 = Calendar.getInstance();
|
||||
calendar1.set(-2020, Calendar.FEBRUARY, 12);
|
||||
|
||||
final Calendar calendar2 = Calendar.getInstance();
|
||||
calendar2.set(2021, Calendar.FEBRUARY, 12);
|
||||
|
||||
|
||||
Assert.assertFalse(DateUtil.isSameMonth(calendar1, calendar2));
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user