Calendar.clear(int field)的陷阱

原创 2004年06月23日 10:27:00

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

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

Java的Calendar.add(int field,int amount)

今天开始学习java的Calendar类,特别记录一下Calendar的set 和add配合使用过程(转载请注明出处哈) field -- 日历字段 amount --要添加到该字段的日期或时间的量 ...
  • zhujason9107
  • zhujason9107
  • 2016年07月31日 11:05
  • 1062

使用Calendar需要注意clear

int month_ = Integer.parseInt(date.substring(5)); int year = Integer.parseInt(date.substring(0,4));...
  • u011285162
  • u011285162
  • 2014年07月31日 16:37
  • 479

Can not set int field entity.Authority.FatherAuthority to null value

java.lang.IllegalArgumentException: Can not set int field entity.Authority.FatherAuthority to null v...
  • zhangweifeng23
  • zhangweifeng23
  • 2013年01月03日 14:49
  • 2709

为什么要get( int field)? 为什么不直接 getDay_Of_Week() ??

已经学到Calendar类了,包括他的子类GregorianCalendar等,就是针对日历的各种乱.伦,今天碰到了一个技术瓶颈,以至于我 一天都没什么进展,早晨起得挺早,八九点就开始研究、认识Cal...
  • u013385247
  • u013385247
  • 2014年02月20日 02:13
  • 559

NullPointerException: Attempt to write to field 'int android.support.v4.app.Fragment.mNextAnim

NullPointerException: Attempt to write to field 'int android.support.v4.app.Fragment.mNextAnim 重新启动A...
  • answerpc
  • answerpc
  • 2017年01月19日 00:27
  • 2477

Attempt to read from field 'int android.support.v4.app.Fragment.mContainerId' on a null object refer

错误信息: Caused by: java.lang.NullPointerException: Attempt to read from field 'int android.support.v4...
  • ckwccc
  • ckwccc
  • 2017年12月18日 10:01
  • 207

Attempt to read from field 'int android.graphics.Rect.bottom' on a null object reference

22881 22881 E AndroidRuntime: java.lang.NullPointerException: Attempt to read from field 'int androi...
  • kongbaidepao
  • kongbaidepao
  • 2017年06月24日 14:50
  • 533

java.lang.NullPointerException: Attempt to read from field 'int android.support.v4.app.Fragment.mCon

写底部导航切换fragment时,报了这个错: java.lang.NullPointerException: Attempt to read from field 'int android.sup...
  • mxiaoyem
  • mxiaoyem
  • 2017年04月02日 00:13
  • 5977

java.lang.NullPointerException: Attempt to write to field 'int android.support.v4.app.Fragment.mNext

如题: java.lang.NullPointerException: Attempt to write to field 'int android.support.v4.app.F...
  • parcool
  • parcool
  • 2016年03月29日 02:43
  • 9808

A c++ program

  • mmoaay
  • mmoaay
  • 2009年04月18日 18:01
  • 531
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Calendar.clear(int field)的陷阱
举报原因:
原因补充:

(最多只允许输入30个字)