Calendar是Java中常用的时间处理工具之一,它提供了很多日历类型常见方法,下面是一些常用的方法及对应的代码和运行结果。
前言
本文主要介绍了什么是Calendar以及方法介绍和使用。
什么是Calendar
在Java中,Calendar是一个用于处理日期和时间的类。它提供了许多方法来获取和设置日期、时间以及执行日期和时间的计算操作。使用Calendar类,可以执行各种常见的日期和时间操作,如获取当前日期和时间、计算两个日期之间的差异、添加或减去指定数量的年、月、日、小时、分钟等等。
Calendar类是一个抽象类,通过调用其静态方法getInstance()来获取一个Calendar对象的实例。可以使用Calendar对象来获取和设置年、月、日、小时、分钟、秒等日期和时间的具体值。此外,Calendar类还提供了一些方便的方法来执行日期和时间的计算、比较和格式化等操作。
1如何创建 Calendar 日历对象
Calendar 是一个抽象类, 无法通过直接实例化得到对象. 因此, Calendar 提供了一个方法 getInstance,来获得一个Calendar对象, 得到的 Calendar 由当前时间初始化
代码举例
Calendar cal=Calendar.getInstance();//默认当前时间
获取时间
get(int field)通过传入上述的静态属性可以获取对应的年月日星期。
代码举例
Calendar calendar = Calendar.getInstance();
//获取年份
System.out.println("年:"+calendar.get(Calendar.YEAR));
//月份默认从0开始,需要加1
System.out.println("月:"+calendar.get(Calendar.MONTH) + 1);
//获取日期
System.out.println("日:"+calendar.get(Calendar.DAY_OF_MONTH));
//获取小时
System.out.println("时:"+calendar.get(Calendar.HOUR_OF_DAY));
//获取分钟
System.out.println("分:"+calendar.get(Calendar.MINUTE));
//获取秒
System.out.println("秒:"+calendar.get(Calendar.SECOND));
//获取当前时间是星期几,1表示星期天,2表示星期一,以此类推,7表示星期六
System.out.println("星期:"+calendar.get(Calendar.DAY_OF_WEEK));
运行结果:
年:2023
月:11
日:21
时:9
分:20
秒:14
星期:3
设置时间
set(int field , int value)方法通过传入上述的静态属性(第一个参数)来设置对应的值(第二个参数)
一次性设置时间,代码举例
Calendar calendar = Calendar.getInstance();
//一次性设置年月日时分秒
calendar.set(2023,2,5,15,30,50);
System.out.println(calendar.getTime());
运行结果:
Sun Mar 05 15:30:50 CST 2023
单独设置时间,代码举例
Calendar calendar = Calendar.getInstance();
//设置年份
calendar.set(Calendar.YEAR,2023);
//设置月份,由于月份下标从0开始 所以赋值月份要-1
calendar.set(Calendar.MONTH,1);
//设置日期
calendar.set(Calendar.DAY_OF_MONTH,15);
//设置小时
calendar.set(Calendar.HOUR_OF_DAY,23);
//设置分钟
calendar.set(Calendar.MINUTE,59);
//设置秒
calendar.set(Calendar.SECOND,59);
//将星期设置为星期天
calendar.set(Calendar.DAY_OF_WEEK,1);
System.out.println(calendar.getTime());
运行结果:
Wed Feb 15 23:59:59 CST 2023
计算日期
add()方法接受两个参数,第一个参数是一个整数,表示要添加的日期字段,第二个参数是一个整数,表示要添加的值。
Calendar cal = Calendar.getInstance();//默认当前时间
cal.add(Calendar.YEAR, 1); // 在当前日期上加 1 年
cal.add(Calendar.MONTH, 1); // 在当前日期上加 1 个月
cal.add(Calendar.DAY_OF_MONTH, 1); // 在当前日期上加 1 天
cal.add(Calendar.HOUR_OF_DAY, 1); // 在当前日期上加 1 小时
cal.add(Calendar.MINUTE, 1); // 在当前日期上加 1 分钟
cal.add(Calendar.SECOND, 1); // 在当前日期上加 1 秒
System.out.println(cal.getTime());
运行结果:
Sun Jan 19 17:36:48 CST 2025
总结
Java中的Calendar类是用于表示日历日期和时间的类。下面是一些常见的Calendar类的方法总结:
方法 | 描述 |
---|---|
getInstance() | 获取一个表示当前日期和时间的Calendar对象。 |
get(int field) | 获取指定日期字段的值,如年、月、日、小时、分钟、秒等。 |
set(int field, int value) | 设置指定日期字段的值。 |
add(int field, int amount) | 在指定日期字段上增加或减少指定的值。 |
getTime() | 将Calendar对象转换为Date对象。 |
getTimeInMillis() | 获取Calendar对象表示的毫秒数。 |
setTime(Date date) | 通过给定的Date对象设置Calendar对象的日期和时间。 |
getActualMaximum(int field) | 获取指定日期字段的实际最大值。 |
getActualMinimum(int field) | 获取指定日期字段的实际最小值。 |
isLeapYear(int year) | 判断指定年份是否为闰年。 |
getFirstDayOfWeek() | 获取一周的第一天。 |
setFirstDayOfWeek(int value) | 设置一周的第一天。 |
以上仅是Calendar类的一些常用方法,还有其他更详细和复杂的方法可以参考Java官方文档。