Java calendar类学习笔记

Java Calendar类

calendar类是abstract类,实际使用时实现特定的子类对象

创建一个代表当前日期的Calendar对象

Calendar ss=Calendar.getlnstance();

Calendar 类对象字段类型

Calendar类能够很好的实现在项目中需要用到的对时间的处理


//根据当前语言地区环境获取一个日历对象

Calendar c = Calendar.getlnstance();

System.out.println(c);

System.out.println("获取年份:"+c.get(Calendar.YEAR));

System.out.println("获取月份:"+(c.get(Calendar.MONTH)+1);//月份0~11

System.out.println("获取日期(今天是该月的第几天):"+c.get(Calendar.DAY_OF_MONTH));

System.out.println("获取小时数(12小时制):"+c.get(Calendar.HOUR));

System.out.println("获取小时数(24小时制):"+c.get(Calendar.HOUR_OF_DAY));

System.out,println("获取分钟数:"+c.get(Calendar.MINUTE));

System.out.println("获取秒钟数:"+c.get(Calendar.SECOND));

System.out.println("获取毫秒数:"+c.get(Calendar.MILLISECOND));

System.out.println("获取当前是该年中的第几天:"+c.get(Calendar.DAY_OF_YEAR));

System.out.println("获取今天是周几:"+c.get(Calendar.DAY_OF_WEEK));

//如何获取今年的总天数

System.out.println(c.getActualMaximum(Calendar.DAY_OF_YEAR));

//获取当前日历表示的该月份的最大天数

System.out.println(c.getActualMaximum(Calendar.DAY_OF_MONTH));

//将日期设置到这个月的一天

c.set(Calendar.DAY_OF_MONTH,1);

Calendar常量(field)的作用

Calendar cal = Calendar.getInstance();
cal.get(Calendar.DATE);//-----------------------当天 1-31
cal.get(Calendar.DAY_OF_MONTH);//---------------当天 1-31
cal.get(Calendar.DAY_OF_WEEK);//----------------从星期天开始计算,如果今天星期二,那么返回3
cal.get(Calendar.DAY_OF_YEAR);//----------------
cal.get(Calendar.HOUR);//-----------------------12小时制
cal.get(Calendar.HOUR_OF_DAY);//----------------24小时制,一般使用这个属性赋值
cal.get(Calendar.MILLISECOND);//----------------
cal.get(Calendar.MINUTE);//---------------------
cal.get(Calendar.SECOND);//---------------------
cal.get(Calendar.WEEK_OF_MONTH);//--------------
cal.get(Calendar.WEEK_OF_YEAR);//---------------
cal.get(Calendar.MONTH);//-----------------------月份获取需要 +1,那么,赋值时需要 -1


我们用这些常量进行赋值,也可以说是可以通过它获取值同样可以通过它进行对应赋值

主要赋值语句

cal.set(Calendar.XXX, VVVV);//--------------------- 对以上每个字段(field)进行赋值,代码重复较大
cal.set(year,month,date,hour,minute,second);//----- 分别对字段(field)进行赋值,效率高

赋值时,week与month需注意,week需要指定setFirstDayOfWeek,然而,月份则需要加减1。赋值时,我们一般采用年,月,日,时,分,秒。

主要计算

cal1.roll(Calendar.MONTH,3);//---------------------- 一般不使用,原因是该方法只在一个月里面循环计算,其大小不会超过该月最值
cal1.add(Calendar.YEAR,-1);//----------------------- 使用 XX_OF_XX 的field进行加减计算效果更佳,而且计算准确
cal1.add(field,value);//----------------------------

cal.roll(Calendar.DAY_OF_MONTH, 32);虽然32已经超出了最大的可能31,但是cal实际是不会超出该月的,而是把32减去该月天数之后,重新计算剩下的天数;

cal1.add(Calendar.MONTH, 1); 如果当前为8-31,那么,加一个月的话就是9-30,这个才是真正的准确。

猜你喜欢

转载自www.cnblogs.com/Ytcstrive/p/13383180.html