Calendar.clear(int field)的陷阱

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值