java中Calendar抽象类的详细使用
来源:互联网 发布:网络电视不能看回放 编辑:程序博客网 时间:2024/05/19 06:39
转载地址:http://www.open-open.com/lib/view/open1414743866872.html
写的非常详细,包括:
1.如何设置值;
2.如何获取值,最大值,最小值(一个月中的最后一天是多少号);
3.Calendar的各个范围介绍,比如DAY_OF_MONTH,DAY_OF_YEAR,DAY_OF_WEEK等等;
4.使用Calendar的roll函数和add函数计算;
说明:Calendar的roll函数和add函数的区别?
比如当前日期是2016-08-18,获取Calendar cal = Calendar.getInstance();实例
1.cal.add(Calendar.MONTH,5); //运算结果为2017-01-18
2.cal.roll(Calendar.MONTH,5); //运算结果为2016-01-18
两者的区别在于:roll方法只在指定的Calendar范围(例子中指定的是月份)里面循环滚动,不会进位。而add方法会不断相加,产生进位。正如本例中,当前月份为8月份,再过5个月,那么年份加1,而roll函数不影响其他的范围,只在月份范围变化。
详细代码,如下所示:
package SecondInterview;import java.text.SimpleDateFormat;import java.util.Calendar;public class UseCalendar {public static void main(String[] args) {//详细使用Calendar抽象类Calendar cal = Calendar.getInstance();//Part1:通过Calendar常量(field)获取值int xingqi = cal.get(Calendar.DAY_OF_WEEK);//星期几:从星期天(返回1)开始计算,如果今天星期二,那么返回3System.out.println("星期几:"+xingqi);int day_of_year = cal.get(Calendar.DAY_OF_YEAR);//一年中第几天System.out.println("一年中的第几天:"+ day_of_year);int week_of_month = cal.get(Calendar.WEEK_OF_MONTH);//一个月的第几周System.out.println("一个月的第几周:"+week_of_month);int week_of_year = cal.get(Calendar.WEEK_OF_YEAR);//一年中的第几周System.out.println("一年中的第几周:"+week_of_year);int year = cal.get(Calendar.YEAR);//年System.out.println("年:"+year);int month = cal.get(Calendar.MONTH);//月,说明月份获取需要 +1,那么,赋值时需要 -1System.out.println("月:"+(month+1));int day_of_month = cal.get(Calendar.DATE);//一个月中的第几天 0-31int day_of_month1 = cal.get(Calendar.DAY_OF_MONTH);//一个月中的第几天 0-31System.out.println("日:"+day_of_month);int hour = cal.get(Calendar.HOUR);//时,12小时制System.out.println("时(12小时制):"+hour);int hour1 = cal.get(Calendar.HOUR_OF_DAY);//时,24小时制,一般使用这个属性赋值System.out.println("时(24小时制):"+hour1);int minute = cal.get(Calendar.MINUTE);//分System.out.println("分:"+minute);int second = cal.get(Calendar.SECOND);//秒System.out.println("秒:"+second);int milliSecond = cal.get(Calendar.MILLISECOND);//取得精确的毫秒数System.out.println("毫秒:"+milliSecond);//Part1 end//Part2:使用Calendar的roll和add函数计算SimpleDateFormat simpleFormate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//当前时间再过2个小时后的时刻cal.add(Calendar.HOUR_OF_DAY, 2);System.out.println("当前时间再过2个小时后的时刻:"+ simpleFormate.format(cal.getTime()) );//当前时间再过5天后的时刻cal.add(Calendar.DAY_OF_MONTH, 5);System.out.println("当前时间再过5天后的时刻:"+ simpleFormate.format(cal.getTime()) );//*使用roll函数,求当前时间再过31天后的时刻//说明:一般不使用,原因是该方法只在一个月里面循环计算,其大小不会超过该月最值。roll滚动,在一个月份里滚动,不超过最值。cal.roll(Calendar.DAY_OF_MONTH, 32); System.out.println("使用roll函数,当前时间再过32天后的时刻:"+ simpleFormate.format(cal.getTime()) );//当前时间再过6个月后的时刻cal.add(Calendar.MONTH, 6);System.out.println("当前时间再过6个月后的时刻:"+ simpleFormate.format(cal.getTime()) );//使用roll函数cal.roll(Calendar.MONTH, 12);System.out.println("使用roll,当前时间再过12个月后的时刻:"+ simpleFormate.format(cal.getTime()) );//使用roll函数cal.roll(Calendar.MONTH, true);System.out.println("使用roll,当前时间再过1个月后的时刻:"+ simpleFormate.format(cal.getTime()) );//当前时间再过3年后的时刻cal.add(Calendar.YEAR, 3);System.out.println("当前时间再过3年后的时刻:"+ simpleFormate.format(cal.getTime()) );//Part2 end//Part3 使用Calendar获取值//1.获取当天的起止时间//2.获取当周的起止时间//3.获取当月的起止时间 1,2,3显示格式均为"yyyy-MM-dd HH:mm:ss"//一天中的开始时刻cal.set(Calendar.HOUR_OF_DAY, 0);cal.set(Calendar.MINUTE, 0);cal.set(Calendar.SECOND, 0);String start1 = simpleFormate.format(cal.getTime());//一天中的结束时刻cal.set(Calendar.HOUR_OF_DAY, 23);cal.set(Calendar.MINUTE, 59);cal.set(Calendar.SECOND, 59);String end1 = simpleFormate.format(cal.getTime());System.out.println("当天的起止时间:" + start1 + "~" + end1);//一周中的开始时间cal.setFirstDayOfWeek(Calendar.MONDAY);cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);cal.set(Calendar.HOUR_OF_DAY, 0);cal.set(Calendar.MINUTE, 0);cal.set(Calendar.SECOND, 0);String start2 = simpleFormate.format(cal.getTime());//一周中的结束时间cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);cal.set(Calendar.HOUR_OF_DAY, 23);cal.set(Calendar.MINUTE, 59);cal.set(Calendar.SECOND, 59);String end2 = simpleFormate.format(cal.getTime());System.out.println("当周的起止时间:" + start2 + "~" + end2);//一月中的开始时间cal.set(Calendar.DAY_OF_MONTH, 1);//从1号开始cal.set(Calendar.HOUR_OF_DAY, 0);cal.set(Calendar.MINUTE, 0);cal.set(Calendar.SECOND, 0);String start3 = simpleFormate.format(cal.getTime());//一月中的结束时间int maxMonthDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);cal.set(Calendar.DAY_OF_MONTH, maxMonthDay);cal.set(Calendar.HOUR_OF_DAY, 23);cal.set(Calendar.MINUTE, 59);cal.set(Calendar.SECOND, 59);String end3 = simpleFormate.format(cal.getTime());System.out.println("当月的起止时间:" + start3 + "~" + end3);}}
0 0
- java中Calendar抽象类的详细使用
- java中时间类Calendar的使用
- java中Calendar类的使用
- Java中日历类Calendar的使用
- Java中Calendar类的使用
- Java中Calendar类的使用
- Java中Calendar的使用方法详细
- Calendar在Java中详细
- 【java中时间类Date和Calendar的使用】
- Java中Date和Calendar类的简单使用
- java中Calendar的错误使用
- 详细解析Java中抽象类和接口的区别
- 详细解析Java中抽象类和接口的区别
- 详细解析Java中抽象类和接口的区别
- 详细解析Java中抽象类和接口的区别
- 详细解析Java中抽象类和接口的区别
- 详细解析Java中抽象类和接口的区别
- 详细解析Java中抽象类和接口的区别
- Vijos P1100 加分二叉树(区间DP,树形DP)
- 杂感
- Oracle 客户端使用技巧
- POJ2516-Minimum Cost(★ )
- PetaPoco微型ORM
- java中Calendar抽象类的详细使用
- android打造独一无二的loading动画效果
- Spring+SpringMVC+MyBatis+Maven
- EL表达式取值
- HDU-1498-50 years,50 colors【二分匹配】【最小顶点覆盖】
- android studio和eclipse的快捷键对比图
- HDOJ 1176 免费馅饼(dp)
- Spring Boot 环境变量读取 和 属性对象的绑定
- tez-ui安装