记录一次Calendar类设置时间的异常
因为Calendar类是大家比较熟悉的java操作时间的类,所以不罗嗦直接上代码
@Test
public void test(String[] args) {
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());//当前时间为2018-5-17 08:56:XX
cal.add(Calendar.DATE, -9); //当前时间前推9天
Date time = cal.getTime();
cal.set(Calendar.HOUR, 0); //设置前推时间0点
int i = cal.get(Calendar.HOUR); //获取设置0点后的小时数
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
Date startTime = cal.getTime();
TimeZone timeZone = cal.getTimeZone();
int year = cal.get(Calendar.YEAR);
int mon = cal.get(Calendar.MONTH);
int day = cal.get(Calendar.DATE);
cal.set(year, mon, day, 0, 0, 0);
Date otime = cal.getTime();
cal.set(Calendar.HOUR, 23);
cal.set(Calendar.MINUTE, 59);
cal.set(Calendar.SECOND, 59);
Date endTime = cal.getTime();
}
遇到bug描述:--->
当通过cal.set(Calendar.HOUR, 0);设置零点后,获取int i = cal.get(Calendar.HOUR);
其中i小时数不为0,而是上一天的12点
解决办法:--->
通过cal.set(year, mon, day, 0, 0, 0);设置可以解决
补充说明:当我第二天debug测试的时候又变正常了,what fuck!!