calendar.getActualMaximum(calendar.DAY_OF_MONTH)的陷阱
2017-09-29 10:49
447 查看
在使用calendar.getActualMaximum(calendar.DAY_OF_MONTH)获取每月最后一天时,发现在2月出现了问题,获取到的时间是20170303,而其他月份获取的最后一天都是正确的。
而且之前获取2月最后一天是28号,也每月问题。代码也没动过。后来才发现昨天是28号取的2月最后一天,29-31号取2月最后一天都会有问题。
原因是Calendar类在set的时候,并不会立即生效,只有在get的时候才会生效
解决方法是在实例化Calendar类之后,要先调用clear()方法清空缓存。
Calendar calendar=Calendar.getInstance();
calendar.clear();
calendar.set(Calendar.YEAR, 2017);
calendar.set(Calendar.MONTH, 1);
int firstDay=calendar.getActualMinimum(calendar.DAY_OF_MONTH);
int lastDay=calendar.getActualMaximum(calendar.DAY_OF_MONTH);
System.out.println(2+"月第一天是:"+firstDay);
System.out.println(2+"月最后一天是:"+lastDay);
calendar.set(Calendar.DAY_OF_MONTH, lastDay);
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
System.out.println(sdf.format(calendar.getTime()));
而且之前获取2月最后一天是28号,也每月问题。代码也没动过。后来才发现昨天是28号取的2月最后一天,29-31号取2月最后一天都会有问题。
原因是Calendar类在set的时候,并不会立即生效,只有在get的时候才会生效
解决方法是在实例化Calendar类之后,要先调用clear()方法清空缓存。
Calendar calendar=Calendar.getInstance();
calendar.clear();
calendar.set(Calendar.YEAR, 2017);
calendar.set(Calendar.MONTH, 1);
int firstDay=calendar.getActualMinimum(calendar.DAY_OF_MONTH);
int lastDay=calendar.getActualMaximum(calendar.DAY_OF_MONTH);
System.out.println(2+"月第一天是:"+firstDay);
System.out.println(2+"月最后一天是:"+lastDay);
calendar.set(Calendar.DAY_OF_MONTH, lastDay);
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
System.out.println(sdf.format(calendar.getTime()));
相关文章推荐
- Andrdoi 如何获得某个月份最后一天(或号数最大那天)的号数?--使用getActualMaximum(Calendar.DAY_OF_MONTH)!
- 【SQL】How to get First and Last day of a month – TSQL
- Calendar.DAY_OF_MONTH存放什么数据
- Java中Calendar.DAY_OF_WEEK、DAY_OF_MONTH需要减一的原因
- nowDate.add(Calendar.DAY_OF_MONTH,1); 谁能告诉我这里面的 1 是什么意思
- Calendar.get(Calendar.DAY_OF_WEEK)
- How to Get First and Last Day of a Month in SQL Server
- Calendar的getActualMaximum
- Calendar:它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段
- 求助 为什么calendar.get(calendar.day_of_week)的返回值不对
- myCal.get(Calendar.DAY_OF_WEEK)-1是什么意思?
- android calendar DAY_OF_WEEK_IN_MONTH
- Java语言中,Calendar.DATE是Calendar.DAY_OF_MONTH的同义词
- Sql Get Last Day of Month...
- Sql Get Last Day of Month...
- struct timeval结构体 以及 gettimeofday()函数
- 一个关于使用 $month,$dayOfMonth 进行按月/日统计的问题
- linux中C语言获取高精度时钟gettimeofday函数
- gettimeofday
- gettimeofday()函数的使用方法