`
zranye
  • 浏览: 25863 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JDK_1.6中Calendar的用法

    博客分类:
  • JAVA
阅读更多

     这里记录一下刚刚知道的Calendar的用法,这是从API文档里面看不到的,只有在用的时候,才会知道自己对Calender这个类有多么不熟悉。

     首先是实例化类的时候吧,Calendar是一个抽象类,只能通过其下面的getInstance()方法来实现实例化。通过阅读源代码,发现返回的是一个sun.util.BuddhistCalendar类,很奇怪的是,跳不进这个类的源代码了。

     从API上面来看,我们可以很容易拿到Calendar的MONTH,当然,这是没有很仔细阅读API解释的结果,我想。今天就是卡在了获得正确的“年”“月”“日”上面了,真不想其他人跟我一样,谷歌都搜不出来一些指导文章,就咬牙忍着肚子饿,写一篇文章先。

    

      获得正确的年月日的方法:calendar.get(Calendar.MONTH); 这里,calendar是已经被实例的引用,而通过打印Calendar.MONTH可以看到,Calendar提供的静态常量如MONTH,YEAR,DATE,只是提供了一些类似下标作用的数字,YEAR是1,MONTH是2,如果没有记错的话。只有通过实例过的引用调用get()方法,才能正确地得到正确的日期。

 

      获得当月第一天下标的方法:

Calendar cal_tmp = Calendar.getInstance();
cal_tmp.set(cal_tmp.get(Calendar.YEAR), cal_tmp.get(Calendar.MONTH),1);
int firstDayIndex = cal_tmp.get(Calendar.DAY_OF_WEEK);

 

就这一块方法,网上都很少资源。思想其实很简单,找一个临时的Calendar实例cal_tmp,把cal_tmp设置成当月的第一天cal_tmp.set(cal_tmp.get(Calendar.YEAR), cal_tmp.get(Calendar.MONTH),1);  最后通过这一天的日期来获得它在一个星期中的第几天。可能一般人想不到可以做什么,如果没有确切的需求的话。但是当你被要求日期计算要再后台完成的时候,你会发现这一个方法非常有必要知道。需求大致如下:通过json传递数据,用ajax方式,在后台计算完日期之后,在前台显示你想要的日历。

 

      终于写完啦,可以吃饭了。

 

分享到:
评论
1 楼 hezhuming123 2012-12-13  
能不能说说Calendar是怎么通过getInstance方法获取实例的?

相关推荐

Global site tag (gtag.js) - Google Analytics