java - 使用类 Calendar 进行调试时的不同结果

标签 java

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/

相关文章:

java - Selenium 登录验证

JAVA加载页面后获取url内容

java - 通用 key 代码 (Java)

java - IntelliJ/Android Studio 上的 Ctrl+N 键盘快捷键

java - Java 中未绘制形状

java - GSON转Ormlite国外 Collection

java - Thymeleaf 依赖导致 Spring 工具套件中出现 "Error: Could not find or load main class"

java - 如何使用 HibernateTemplate.findByNamedParam()?

java - 初始化模拟对象 - Mockito

Java 原子变量 set() 与 compareAndSet()