Java笔记之Calendar使用

本文详细介绍了Java中Calendar类的使用方法,包括获取日期时间信息、时间加减及时间比较等常见操作,通过实例展示了如何灵活运用Calendar类进行日期时间的处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


package com.qw.test;

import java.util.Calendar;

public class A {

    public static void main(String[] args) {
        Calendar cl = Calendar.getInstance();
        System.out.println(cl.toString());
        System.out.println("年:" + cl.get(Calendar.YEAR));
        /**
         * 此处获取到的月份值是从0开始的,也就是说0代表一月,所以在使用的时候记得将其值加1
         */
        System.out.println("月:" + (cl.get(Calendar.MONTH) + 1));

        System.out.println("日:" + cl.get(Calendar.DAY_OF_MONTH));

        /**
         * 需再处理,在西方星期从周日开始计算,所以1表示周日,然后2表示周一,以此类推。
         * 通常我们将DAY_OF_WEEK取得的值减1,完成周一到周六的数值对应,特殊处理减一后, 表示周日的0
         */
        int dayOfWeek = cl.get(Calendar.DAY_OF_WEEK) - 1;
        dayOfWeek = dayOfWeek == 0 ? 7 : dayOfWeek;
        System.out.println("星期:" + dayOfWeek);

        System.out.println("该月中第几周:" + (cl.get(Calendar.DAY_OF_WEEK_IN_MONTH)));
        System.out.println("该年中第几天:" + cl.get(Calendar.DAY_OF_YEAR));
        System.out.println("12小时制_时:" + cl.get(Calendar.HOUR));
        System.out.println("24小时制_时:" + cl.get(Calendar.HOUR_OF_DAY));
        System.out.println("AM/PM:" + cl.get(Calendar.AM_PM)); // 0:AM,1:PM
        System.out.println("分:" + cl.get(Calendar.MINUTE));
        System.out.println("秒:" + cl.get(Calendar.SECOND));
        System.out.println("毫秒:" + cl.get(Calendar.MILLISECOND));

        System.out.println("\n----------add使用----------------增加5小时");
        cl.add(Calendar.HOUR, 5); // 对指定的域做加法,此处是将时间增加5小时
        System.out.println("日:" + cl.get(Calendar.DAY_OF_MONTH));
        System.out.println("12小时制_时:" + cl.get(Calendar.HOUR));
        System.out.println("24小时制_时:" + cl.get(Calendar.HOUR_OF_DAY));
        System.out.println("AM/PM:" + cl.get(Calendar.AM_PM)); // 0:AM,1:PM

        System.out.println("\n-------roll/add比较------------");
        Calendar cl2 = Calendar.getInstance();
        Calendar cl3 = Calendar.getInstance();
        cl2.roll(Calendar.HOUR, 24); // 对指定的域做加法,此处是将时间增加24小时
        cl3.add(Calendar.HOUR, 24); // 对指定的域做加法,此处是将时间增加24小时
        System.out.println("日(roll后):" + cl2.get(Calendar.DAY_OF_MONTH)); // 未发生进位运算
        System.out.println("日(add后):" + cl3.get(Calendar.DAY_OF_MONTH)); // 发生进位运算
        System.out.println("12小时制_时:" + cl2.get(Calendar.HOUR));
        System.out.println("24小时制_时:" + cl2.get(Calendar.HOUR_OF_DAY));

        /**
         * 关于Calendar还有很多set\get、时间比较方法,都相当简单,请自行使用就好
         * 以下示例,对指定域的值进行设置,如果该值超出该域最大值范围,自动修正, 可能会导致进位、退位运算
         */
        Calendar cl4 = Calendar.getInstance();
        System.out.println("\n-------set使用------------");
        cl4.set(Calendar.HOUR, 37);
        System.out.println("日:" + cl4.get(Calendar.DAY_OF_MONTH));
        System.out.println("12小时制_时:" + cl4.get(Calendar.HOUR));
        System.out.println("24小时制_时:" + cl4.get(Calendar.HOUR_OF_DAY));
    }

}

代码运行结果:
java.util.GregorianCalendar[time=1430099850981,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id=”GMT+08:00”,offset=28800000,dstSavings=0,useDaylight=false,transitions=0,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2015,MONTH=3,WEEK_OF_YEAR=18,WEEK_OF_MONTH=5,DAY_OF_MONTH=27,DAY_OF_YEAR=117,DAY_OF_WEEK=2,DAY_OF_WEEK_IN_MONTH=4,AM_PM=0,HOUR=9,HOUR_OF_DAY=9,MINUTE=57,SECOND=30,MILLISECOND=981,ZONE_OFFSET=28800000,DST_OFFSET=0]
年:2015
月:4
日:27
星期:1
该月中第几周:4
该年中第几天:117
12小时制_时:9
24小时制_时:9
AM/PM:0
分:57
秒:30
毫秒:981

———-add使用—————-增加5小时
日:27
12小时制_时:2
24小时制_时:14
AM/PM:1

——-roll/add比较————
日(roll后):27
日(add后):28
12小时制_时:9
24小时制_时:9

——-set使用————
日:28
12小时制_时:1
24小时制_时:13

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值