gpt4 book ai didi

java - 在 Calendar.set() 上检测无效日期

转载 作者:行者123 更新时间:2023-11-30 06:13:33 25 4
gpt4 key购买 nike

我有这个方法返回一个 Date() 由其中一个“字段”(日、月、年)更改。

public static Date getDateChanged(Date date, int field, int value) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.set(field, value);
return cal.getTime();
}

但是,当我们尝试设置的字段与相关日期不兼容时,cal.set() 无法给出异常。所以,在这种情况下:

Date date = new Date();
date = getDateChanged(date, Calendar.DAY_OF_MONTH, 29);
date = getDateChanged(date, Calendar.MONTH, 1); // feb

日期最后是 01/03/15,因为 Calendar.set() 检测到二月不能设置为第 29 天,所以自动将日期设置为下一个可能的日期(我认为这就是日常工作)。

这还不错,但是,就我而言,

我想检测到我尝试构建的日期是不可能的,然后然后开始减少日期,所以在这种情况下,我想要实现的是 28/02/15,我该怎么做?

例子:

29/02/15 ===> 28/02/15

最佳答案

您可以使用 cal.getActualMaximum(Calendar.DAY_OF_MONTH) 为您的日历实例查找给定月份的最大天数。

这样,您就可以自己处理上面提到的情况了。

另请参阅此处的答案:Number of days in particular month of particular year?

关于java - 在 Calendar.set() 上检测无效日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31719190/

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