java的日历类Calendar使用
简单介绍
Calendar类是一个抽象类public abstract class Calendar implements Serializable, Cloneable, Comparable,它为特定时间与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。就是可以利用它来获得自己想要的时间,可以是指定的过去的时间,也可以是将来的时间,或者是经过计算之后的时间。总之就是用来获取时间的。
用get方法获取时间
//获取calendar对象 Calendar instance = Calendar.getInstance(); //用get方法获取时间 int year = instance.get(Calendar.YEAR); System.out.println("year:" + year); //这时是返回的是一个数字,对应的是Calendar的月份常数。一月是0,二月是1····十二月是11,依次类推 int mouth = instance.get(Calendar.MONTH) + 1; System.out.println("mouth:" + mouth); 获取当前天数 int date = instance.get(Calendar.DATE); System.out.println("date:" + date); int dayOfMonth = instance.get(Calendar.DAY_OF_MONTH); System.out.println("dayOfMonth:" + dayOfMonth); //当前月最大天数 int maximum = instance.getActualMaximum(Calendar.DATE); System.out.println("maximun:" + maximum); //当前月最小天数 int actualMinimum = instance.getActualMinimum(Calendar.DATE); System.out.println("actualMinimum:" + actualMinimum); //获取当前处于一天中的第几个小时, int hourOfDay = instance.get(Calendar.HOUR_OF_DAY); System.out.println("hourOfDay:" + hourOfDay); //获取当前分钟数 int minute = instance.get(Calendar.MINUTE); System.out.println("minute:" + minute); //获取当前秒数 int second = instance.get(Calendar.SECOND); System.out.println("second:" + second); //星期(Locale.ENGLISH情况下,周日是1,周一2,周二3,周三4,周四5,周五6,周六7) int dayOfWeek = instance.get(Calendar.DAY_OF_WEEK)-1; System.out.println("dayOfWeek:" + dayOfWeek); //如果需要将获得到的时间格式化输出,则需要使用SimpleDateFormart 模式为yyyy-MM-dd HH:mm:ss SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date now = instance.getTime(); System.out.println("格式化时间:" + sdf.format(now));
执行结果:
用set方法来设置时间
//设置时间之后用getTime()得到时间 例如: SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //使用set()方法来进行设置指定时间 Calendar cal=Calendar.getInstance(); cal.set(2020, 3, 3, 13, 44, 51);//年月日时分秒(月份0代表1月) System.out.println("打印时间-1:"+format.format(cal.getTime())); cal.set(Calendar.YEAR, 2014);//年 cal.set(Calendar.MONTH, 7);//月(月份0代表1月) cal.set(Calendar.DATE, 11);//日 cal.set(Calendar.HOUR_OF_DAY, 15);//时 cal.set(Calendar.MINUTE, 3);//分 cal.set(Calendar.SECOND, 32);//秒 System.out.println("打印时间-2:"+format.format(cal.getTime()));
执行结果:
使用add方法对时间进行设置
Calendar cal=Calendar.getInstance(); //设置时间之后用getTime()得到时间 例如: SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println("打印当前时间:"+format.format(cal.getTime())); //使用add()方法对时间进行运算 cal.add(Calendar.YEAR, 1);//给当前年份加1年,-1就是减一年 cal.add(Calendar.MONTH, 1);//给当前月加1月 cal.add(Calendar.DATE, 1);//当前时间+1 cal.add(Calendar.HOUR_OF_DAY, -1);//当前小时-1 cal.add(Calendar.MINUTE, 1);//分 cal.add(Calendar.SECOND, 1);//秒 cal.add(Calendar.DATE, 7);//周 System.out.println("打印变更后时间:"+format.format(cal.getTime()));
执行结果: