private java.sql.Date getHorizonEnd(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
cal.set(Calendar.DAY_OF_MONTH, 1);
cal.add(Calendar.MONTH, 3);
return new java.sql.Date(cal.getTimeInMillis());
}
如果我通过日期 2020 年 4 月 27 日,我预计是 2020 年 8 月 1 日,如果我在此函数中有断点,它在调试中工作正常,但否则我得到 2020 年 7 月 1 日 ....
最佳答案
它看起来没有必要,但对我有用:
private java.sql.Date getHorizonEnd(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
cal.setTime(cal.getTime());
cal.set(Calendar.DAY_OF_MONTH, 1);
cal.add(Calendar.MONTH, 3);
return new java.sql.Date(cal.getTimeInMillis());
}
关于java - 使用类 Calendar 进行调试时的不同结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62278297/