大家好,欢迎来到IT知识分享网。
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,这个才是真正的准确。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/20642.html