Calendar.clear(int field)的陷阱

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

运行以下代码,你期望会输出什么?

// 假设现在的时间是11:34:03

Calendar cal = Calendar.getInstance();

cal.set(Calendar.HOUR_OF_DAY, 5);

cal.clear(Calendar.HOUR_OF_DAY);

cal.clear(Calendar.Calendar.SECOND);

System.out.println("h: "cal.get(Calendar.HOUR_OF_DAY) + " ,s: " + cal.get(Calendar.SECOND));

你一定以为会输出h: 0 , s: 0

什么?不是?哪输出的是h: 5 , s: 3

都不是!!!

输出的h: 11 , s: 0

呵呵,难以置信吧?

原来Calender的clear(int)方法并不是清零,

对于HOUR,HOUR_OF_DAY就是返回最原始的值。

其他的可能是清零。

总之,不是一个保险的方法,还是尽量用set(HOUR, 0)这样的方法代替。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航