Calendar.clear(int field)的陷阱

类别:Java 点击:0 评论:0 推荐:

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

              // 假设现在的时间是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)这样的方法代替。

本文地址:http://com.8s8s.com/it/it16326.htm