Calendar的基本使用


Calendar 类是Java中用于处理日期和时间的抽象类。它提供了对日期和时间字段进行操作的方法,以及一些方便的功能,例如获取当前日期和时间。下面是关于Calendar类的一些基本使用和说明:

1.获取Calendar实例:

	Calendar calendar = Calendar.getInstance();
	
	Date date = calendar.getTime();

Calendar类是抽象类,不能直接实例化,但可以通过getInstance()方法获取实例,所以使用getInstance()方法获取Calendar类的实例。这将返回一个表示当前日期和时间的Calendar对象。

2.获取日期和时间字段的值:

	   int year = calendar.get(Calendar.YEAR);
	   int month = calendar.get(Calendar.MONTH); // 月份从0开始,需要+1得到实际月份
	   int day = calendar.get(Calendar.DAY_OF_MONTH);
	   int hour = calendar.get(Calendar.HOUR_OF_DAY);
	   int minute = calendar.get(Calendar.MINUTE);
	   int second = calendar.get(Calendar.SECOND);

3.设置日期和时间字段的值:

        calendar.set(Calendar.YEAR, 2023);
        calendar.set(Calendar.MONTH, Calendar.AUGUST); // 月份从0开始
        calendar.set(Calendar.DAY_OF_MONTH, 15);
        calendar.set(Calendar.HOUR_OF_DAY, 12);
        calendar.set(Calendar.MINUTE, 30);
        calendar.set(Calendar.SECOND, 12);

4.日期和时间的加减:

        calendar.add(Calendar.YEAR, 1);//加一年
        calendar.add(Calendar.MONTH, 3);//加3个月
        calendar.add(Calendar.DAY_OF_MONTH, 5); // 加5天
        calendar.add(Calendar.MONTH, -2); // 减2个月

5.比较日期:

	   Calendar calendar = Calendar.getInstance();
       Calendar anotherCalendar = Calendar.getInstance();
        if (calendar.after(anotherCalendar)) {
            // 当前日期晚于anotherCalendar
        } else if (calendar.before(anotherCalendar)) {
            // 当前日期早于anotherCalendar
        } else {
            // 两个日期相等
        }

6.格式化日期输出:

Calendar类本身不提供格式化输出的方法,通常需要结合SimpleDateFormat类使用。

		// 定义日期格式
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        SimpleDateFormat dateTimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

7.注意事项:

(1) Calendar类是抽象类,不能直接实例化,但可以通过getInstance()方法获取实例。
(2) Calendar类中月份是从0开始的,因此一月用0表示,二月用1表示,以此类推。
(3) Calendar类提供了很多常量用于表示不同的日期和时间字段,如Calendar.YEAR、Calendar.MONTH等。
(4) Calendar类本身不提供格式化输出的方法,通常需要结合SimpleDateFormat类使用。
(5) Date date = calendar.getTime()。

        //使用getInstance()方法获取Calendar类的实例
        Calendar calendar = Calendar.getInstance();

        // 定义日期格式
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        SimpleDateFormat dateTimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        //获取日期和时间字段的值
        int year = calendar.get(Calendar.YEAR);
        int month = calendar.get(Calendar.MONTH) + 1; // 月份从0开始,需要+1得到实际月份
        int day = calendar.get(Calendar.DAY_OF_MONTH);
        int hour = calendar.get(Calendar.HOUR_OF_DAY);
        int minute = calendar.get(Calendar.MINUTE);
        int second = calendar.get(Calendar.SECOND);

        //设置日期和时间字段的值
        calendar.set(Calendar.YEAR, 2023);
        calendar.set(Calendar.MONTH, Calendar.AUGUST); // 月份从0开始
        calendar.set(Calendar.DAY_OF_MONTH, 15);
        calendar.set(Calendar.HOUR_OF_DAY, 12);
        calendar.set(Calendar.MINUTE, 30);
        calendar.set(Calendar.SECOND, 12);
        System.out.println(dateTimeFormat.format(calendar.getTime()));//2023-08-15 12:30:12

        //日期和时间的加减
        calendar.add(Calendar.YEAR, 1);//加一年
        calendar.add(Calendar.MONTH, 3);//加3个月
        calendar.add(Calendar.DAY_OF_MONTH, 5); // 加5天
        calendar.add(Calendar.MONTH, -2); // 减2个月
        System.out.println(dateFormat.format(calendar.getTime()));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值