- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想获取一个月的最大日期,它在某一天不起作用,就像代码一样,它按条件显示如下二月有问题2017 Feb Max is 28,如果你电脑的日期大于28,比如2017-03-29或2017-04-30
Date date = PrimeUtil.formatStringToTime("2017-02","yyyy-MM");
System.out.println(date);
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR,date.getYear());
c.set(Calendar.MONTH,date.getMonth());
c.set(Calendar.DAY_OF_MONTH,c.getActualMaximum(Calendar.DAY_OF_MONTH));
System.out.println(c.getTime());
最佳答案
我遇到了你的问题。问题是,当您设置月份时,如果需要,日期会发生变化。
我有一个方法:
public static Date getLastDayOfMounth(int month){
Calendar cTemp = Calendar.getInstance();
// here is where I need to set the day
cTemp.set(Calendar.MONTH, month);
cTemp.set(Calendar.DAY_OF_MONTH, cTemp.getActualMaximum(Calendar.DAY_OF_MONTH));
return cTemp.getTime();
}
我有一个用于该方法的测试单元,用于测试每个月的方法,从 0 到 11。直到今天它一直有效。
今天,2018 年 3 月 29 日,2 月份的测试用例出错了......为什么?
首次 cTemp = 2018 年 3 月 29 日(今天)
然后cTemp.set(Calendar.MONTH, 1);
是29/02/2018,但是这一天不存在,所以变成了01/03/2018
那么cTemp.getActualMaximum(Calendar.DAY_OF_MONTH)
就是三月的最后一天。
我解决了添加
cTemp.set(Calendar.DAY_OF_MONTH, 1);
设置月份之前。所以我总是从第一天开始,避免跳到下个月的问题。
关于java - 为什么 Calendar.getActualMaximum 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43093196/
我想获取一个月的最大日期,它在某一天不起作用,就像代码一样,它按条件显示如下二月有问题2017 Feb Max is 28,如果你电脑的日期大于28,比如2017-03-29或2017-04-30 D
这个问题在这里已经有了答案: Why is January month 0 in Java Calendar? (18 个答案) Why Java Calendar set(int year, in
为什么我得到的是 31 而不是 3?现在是 12 月,所以之前的 11 月 = 30。 Calendar calendarPreviousMonth = Calendar.getInstance();
要么我不理解方法 getActualMaximum(int) 或字段 WEEK_OF_YEAR,要么涉及 Sun 错误(或所有三个)...有人可以向我解释为什么(至少在德语语言环境中...) 以下代码
我正在使用 calendar.getActualMaximum(Calendar.WEEK_OF_YEAR) 来获取给定年份的总周数。这是我正在使用的功能: public static void ma
我是一名优秀的程序员,十分优秀!