A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. Calendar call=Calendar.getInstance();
  2. System.out.println("年:"+call.YEAR);
  3. System.out.println("月:"+call.MONTH);
  4. System.out.println("日:"+call.DAY_OF_MONTH);
  5. System.out.println("星期:"+call.WEDNESDAY+1);



  6. //System.out.println(cal);
  7. Calendar cal=Calendar.getInstance();
  8. System.out.println("年:"+cal.get(cal.YEAR));
  9. System.out.println("月:"+(cal.get(cal.MONTH)+1));
  10. System.out.println("日:"+cal.get(cal.DAY_OF_MONTH));
  11. System.out.println("星期:"+cal.get(cal.WEEK_OF_MONTH));
复制代码
  1. 显示结果:
  2. 年:1
  3. 月:2
  4. 日:5
  5. 星期:41
  6. 年:2013
  7. 月:2
  8. 日:8
  9. 星期:2
复制代码
为什么不用get取字段值,数据就这么奇怪?字段值也是该类的成员属性,本类调用成员属性,应该能显示。其中的过程是怎么样的

2 个回复

倒序浏览
我不太理解你说的“为什么不用get取字段值,数据就这么奇怪?”get和set这对操作是对值的获取和设置的。
你如果要是想获取数据,很多时候都是用get的,java中很多方法都定义get获取变量的数据的。
你说的字段值,我的理解是年月日星期是记录行,而像2013年2月7日星期4中2013、2、7、4都是字段值。
我查看了API文档,其中说Calendar获得的时间,瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。
而Calendar 的 getInstance 方法返回一个 Calendar 对象,其日历字段已由当前日期和时间初始化: Calendar rightNow = Calendar.getInstance();
我的理解是:如果你在初始化后不用get方法获得当前时间的话,那么就会返回get方法中为进行计算的值,这么说吧:
可能get方法中有这样的加法运算:当前时间(如2013)=1970+(2013-1970)+1;(可能这些值都是用变量计算的的,如a+b+c之类的,比如a就代表2013等)
其中的+1代表已经到了2013年这个点,超过了这个点(2013年0月0日0时0分0秒...),就是2014年了,所以你直接取这里的值,会取到年是1之类的数。
这是我个人的理解,不知道是否正确,不过还是要java中的方法为基准,按照java中的方法获取相应的时间值就不会错的。以后慢慢深入学习就会渐渐明白的了。
回复 使用道具 举报
本帖最后由 铿锵科技 于 2013-2-8 21:43 编辑

// 日历对象
                Calendar calendar = Calendar.getInstance();
                System.out.println(calendar.getTime());
                // 获取年并输出
                System.out.print(calendar.get(Calendar.YEAR) + "年");
                // 日历的月份是从0(代表1月)开始的
                System.out.print(calendar.get(Calendar.MONTH) + 1 + "月");
                //输出日
                System.out.print(calendar.get(Calendar.DAY_OF_MONTH) + "日");
                // System.out.println(calendar.get(Calendar.DATE));
                // 日历类的星期数是星期日对应的整数为1开始算起的星期六对应的数为7
                System.out.print("星期" + (calendar.get(Calendar.DAY_OF_WEEK) - 1)+" ");
                //输出时分
                System.out.println(calendar.get(Calendar.HOUR)+":"+calendar.get(Calendar.MINUTE));
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马