gpt4 book ai didi

java - apache.commons.lang3.DateUtils.setMonths 十二月

转载 作者:行者123 更新时间:2023-12-01 12:00:02 25 4
gpt4 key购买 nike

我面临着非常奇怪的问题..下面是生成一个新的 Date 对象的代码:

Date result = DateUtils.setYears(new Date(), year);
result = DateUtils.setMonths(result, month);
return DateUtils.setDays(result, day);

如果我传递从 1 到 11 的月份的任何值 - 一切正常,1 表示一月,2 - 二月 ... 11 - 十一月。但对于 12,它总是失败并出现 java.lang.IllegalArgumentException: MONTH 异常..

当我尝试传递基于 0 的值时,第一个 0 表示前一年的 12 月。有什么想法吗?

提前谢谢

最佳答案

方法setMonths看起来像

 public static Date setMonths(Date date, int amount) {
return set(date, Calendar.MONTH, amount);
}

正如您所注意到的,它在内部使用 java 中的 Calendar.MONTH 。 Calendar 类中的月份从 0 开始到 12(12 值表示 UNDECIMBER,即一年中的第 13 个月,尽管 GregorianCalendar 不使用此值,但农历使用此值)。因此,当您传递 0 时,表示一月,1 表示二月,...而 11 表示十二月。对于无效的月份值日历类抛出

java.lang.IllegalArgumentException

关于java - apache.commons.lang3.DateUtils.setMonths 十二月,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28044504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com