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+"天");
    }
}
原文地址:https://www.cnblogs.com/zzq123/p/10083466.html