java日历类-java.util.Calendar

目录

一、Calendar的创建

二、Calendar的常用方法

三、代码实例

一、Calendar的创建

    Calendar 类是一个抽象类,它为特定瞬间与 YEAR、MONTH、DAY_OF—MONTH、HOUR 等日历字段 之间的转换提供了一些方法,并为操作日历字段(如获得下星期的日期) 提供了一些方法。

    创建 Calendar 对象不能使用 new 关键字,因为 Calendar 类是一个抽象类,但是它提供了一个 getInstance() 方法来获得 Calendar类的对象。getInstance() 方法返回一个 Calendar 对象,其日历字段已 由当前日期和时间初始化。

Calendar c = Calendar.getInstance();

二、Calendar的常用方法

当创建了一个 Calendar 对象后,就可以通过 Calendar 对象中的一些方法来处理日期、时间。 Calendar 类的常用方法如表 2 所示。

Calendar 对象可以调用 set() 方法将日历翻到任何一个时间,当参数 year 取负数时表示公元前。 Calendar 对象调用 get() 方法可以获取有关年、月、日等时间信息,参数 field 的有效值由 Calendar 静态常 量指定。

Calendar 类中定义了许多常量,分别表示不同的意义 

  • Calendar.YEAR:年份。
  • Calendar.MONTH:月份。
  • Calendar.DATE:日期。
  • Calendar.DAY_OF_MONTH:日期,和上面的字段意义完全相同。
  • Calendar.HOUR:12小时制的小时。
  • Calendar.HOUR_OF_DAY:24 小时制的小时。
  • Calendar.MINUTE:分钟。
  • Calendar.SECOND:秒。
  • Calendar.DAY_OF_WEEK:星期几。

三、代码实例

  •     获取月份的时候从0月开始 ,所以要加一,获取星期的时候,周日为第一天 所以要减一。
package com.by.date;
import java.text.ParseException;
import java.util.Calendar;
import java.util.Date;

public class Riqi {
    public static void main(String[] args) throws ParseException {
        Calendar ca = Calendar.getInstance();//如果不设置时间,则默认为当前时间
        System.out.printf("%tF %<tT", ca);//2024-01-02 11:34:29
        ca.setTime(new Date());//把系统当前时间赋给Calendar对象
        System.out.printf("现在时刻:%tF%<tT%n", ca.getTime());//现在时刻:2024-01-0211:37:17
        // 获取当前年份
        int year = ca.get(Calendar.YEAR);
        System.out.printf("现在是:%d年%n", year);//现在是:2024年
        // 获取当前月
        int month = ca.get(Calendar.MONTH) + 1;
        System.out.println("现在是:" + month + "月");//现在是:1月
        // 获取日
        int day = ca.get(Calendar.DATE);
        System.out.println("现在是" + day + "号");//现在是3号
        // 获取今天是星期几(以星期日为第一天)所以要减1
        int week = ca.get(Calendar.DAY_OF_WEEK) - 1;
        System.out.println("今天是星期" + week);//今天是星期3
        // 获取当前小时
        int hour = ca.get(Calendar.HOUR_OF_DAY);
        System.out.println(hour + "时");//8时
        // 获取当前分钟
        int minute = ca.get(Calendar.MINUTE);
        System.out.println(minute + "分钟");//50分钟
        // 获取当前秒数
        int second = ca.get(Calendar.SECOND);
        System.out.println(second + "秒");//33秒
        // 获取今天是本月的第几天
        int dayOfMonth = ca.get(Calendar.DAY_OF_MONTH);
        System.out.printf("今天是本月的第%d天%n", dayOfMonth);//今天是本月的第3天
        // 获取今天是今年的第几天
        int many = ca.get(Calendar.DAY_OF_YEAR); // 获取今天是今年第几天
        System.out.println("今天是今年第 " + many + " 天");//今天是今年第 3 天
        //设置年月日,时分秒默认采用当前值
        ca.set(2012,8,8);
        System.out.println(ca.getTime());//Sat Sep 08 09:02:03 CST 2012



    }
}
static void m1() {
        Calendar ca = Calendar.getInstance();
        // 获取七天前的日期
        ca.add(Calendar.DATE, -7);
        //日历类转为Date类
        Date da = ca.getTime();
        System.out.println(da);//ed Dec 27 09:08:23 CST 2023
        // 日历类获取时间戳
        long timeInMillis = ca.getTimeInMillis();
        System.out.printf("%tF%<tT%n",timeInMillis);//2023-12-2709:10:52
    }

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

今天的接口写完了吗?

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值