java之Calendar类
1 Calendar类
Calendar是日历类,它将所有可能用到的时间信息封装为静态成员变量,方便获取。
Calendar为抽象类,由于语言敏感性,Calendar类在创建对象时并非直接创建,而是通过静态方法创建,将语言敏感内容处理好,再返回子类对象,如下:
Calendar c = Calendar.getInstance(); //返回当前时间
(1) 常用方法
1.1创建Calendar对象,获取当前时间
//创建Calendar对象(当前日期的日历类对象) Calendar c=Calendar.getInstance();//返回当前时间 System.out.println(c);
结果为:
1.2 获取当前的年、月、日、时、分、秒
YEAR 年
MONTH 月,从0开始算起,最大11;0代表1月,11代表12月。
DATE 天
HOUR 时
MINUTE分
SECOND秒
其中需要注意的是 月是从0开始 0-11,天是一月中的第几天。
System.out.println(c.get(Calendar.DATE));
System.out.println(c.get(Calendar.YEAR));
1.3 时间偏移
//add()时间偏移 c.add(Calendar.YEAR, -1); System.out.println(c.get(Calendar.YEAR));
c.add()里面前面写需要改的属性 年月日等等 后面-号就是减掉,正数就是加上。
1.4 日历类对象转为日期类对象
//日历类对象转为日期类对象 Date d=c.getTime(); System.out.println(d);
运行结果:
1.5 将日历类设定成指定的时间
//将日历类设置成指定的时间 Calendar c2=Calendar.getInstance(); c2.set(Calendar.YEAR, 2008); c2.set(Calendar.MONTH, 7); c2.set(Calendar.DATE, 8); c2.set(2055, 3, 4, 5, 6, 7); System.out.println(c2.getTime());
注意注意!!!
西方星期的开始为周日,中国为周一。
在Calendar类中,月份的表示是以0-11代表1-12月。
日期是有大小关系的,时间靠后,时间越大。
练习:求出自己已经出生了多少天?
import java.util.Calendar; public class Demo02 { public static void main(String[] args) { //获取当前系统时间毫秒值 long currenttime=System.currentTimeMillis(); //获取当前日历类对象 Calendar c=Calendar.getInstance(); c.set(1995, 3, 7); long birth=c.getTime().getTime(); //计算时间差 int day=(int)((currenttime-birth)/1000/60/60/24); System.out.println("你出生了"+day+"天"); } }