一、Calendar
Calendar 类在Java中是一个抽象类,提供了一个完全由Java编写的日历系统,用于将日期字段向周减少或增加跨度,以及格式化日期的方法。
import java.util.Calendar; import java.util.GregorianCalendar; public class CalendarDemo { public static void main(String[] args) { Calendar cal = Calendar.getInstance(); System.out.println("今天的日期: " + cal.getTime()); // 一个星期后的日期 cal.add(Calendar.DATE, 7); System.out.println("一个星期后的日期: " + cal.getTime()); // 一个月后的日期 cal.add(Calendar.MONTH, 1); System.out.println("一个月后的日期: " + cal.getTime()); // 一年后的日期 cal.add(Calendar.YEAR, 1); System.out.println("一年后的日期: " + cal.getTime()); } }
以上代码演示了Calendar类的基本用法。通过getInstance()方法获得一个Calendar对象,然后调用add()方法修改日期。
二、Calendar类的add方法
Calendar类提供了 add() 方法来增加或减少指定的时间量。
cal.add(Calendar.YEAR, -1); // 将年份减一年 cal.add(Calendar.MONTH, 6); // 将月份加上六个月
三、Calendar类
然而,由于Calendar类是一个抽象类,我们无法直接使用它。所以我们需要使用它的子类来实现自己的日期格式。
Java提供了4个子类可以使用:
- GregorianCalendar
- JapaneseImperialCalendar
- BuddhistCalendar
- IslamicCalendar
例如,可以这样使用GregorianCalendar类来初始化一个对象。
Calendar cal = new GregorianCalendar(2022, 8, 1); System.out.println(cal.getTime());
四、Calendar类API
以下列表显示了Calendar类的主要方法。
- get(field): 输出给定字段的值
- set(field, value): 设置指定字段的值
- add(field, amount): 添加给定字段的值,负值减去该值
- roll(field, value): 通过给定的值将指定字段向前或向后滚动,而不更改较大的字段
- getTime(): 返回一个代表calendar日期值的Date对象
- compareTo(Calendar anotherCalendar): 比较此分配给指定类型的两个Calendar对象的值
- equals(Object obj): 比较此Calendar时间值(从历元到现在的毫秒数)是否相等于另一个Calendar。
五、Calendar类的方法
以下是Calendar类的一些常用方法:
- get(Calendar.YEAR): 获取年份
- get(Calendar.MONTH): 获取月份
- get(Calendar.DAY_OF_MONTH): 获取日期
- get(Calendar.DAY_OF_WEEK): 获取星期几
- get(Calendar.HOUR_OF_DAY): 获取小时
- get(Calendar.MINUTE): 获取分钟
- get(Calendar.SECOND): 获取秒钟
- get(Calendar.MILLISECOND): 获取毫秒
六、Calendar类常用方法
下面是Calendar类的一些常用方法:
- Calendar.getActualMaximum(int field): 获取指定字段在其范围内的最大值。
- Calendar.getActualMinimum(int field): 获取指定字段在其范围内的最小值。
- Calendar.before(Object when): 如果此时刻在when之前,则返回true。
- Calendar.after(Object when): 如果此时刻在when之后,则返回true。
- Calendar.compareTo(Calendar anotherCal): 比较此Calendar时间值(从历元到现在的毫秒数)是否相等于另一个Calendar时间值。
- Calendar.setTime(Date date): 将此Calendar时间表示设置为指定的Date。
- Calendar.set(int year, int month, int date): 设置Calendar时间值到指定的年月日。
七、Calendar怎么使用
以下是通过一个例子,展示Calendar类的使用。
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.GregorianCalendar; public class Main { public static void main(String[] args) { Calendar calendar = new GregorianCalendar(); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println("当前时间是:"+ dateFormat.format(calendar.getTime())); // 加200年 calendar.add(Calendar.YEAR, 200); System.out.println("加200年后的时间是:" + dateFormat.format(calendar.getTime())); // 减去三个月 calendar.add(Calendar.MONTH, -3); System.out.println("减去三个月后的时间是:" + dateFormat.format(calendar.getTime())); // 设置为1998年 calendar.set(Calendar.YEAR, 1998); System.out.println("设置为1998年后的时间是:" + dateFormat.format(calendar.getTime())); } }
八、calendar使用教程
Calendar类的使用需要一些基本的Java知识。以下是入门Java编程所需的知识:
- Java基础语法和基本数据类型
- 对象和类
- 继承和多态
- 异常处理
九、使用什么方法可以获得Calendar类
以下是获取Calendar类的方法:
- Calendar.getInstance(): 获取默认的Calendar对象
- GregorianCalendar(): 使用默认时区和语言环境构造Calendar对象
- GregorianCalendar(TimeZone zone): 指定时区和语言环境构造Calendar对象
- GregorianCalendar(Locale aLocale): 指定语言环境构造Calendar对象
总之,Calendar类是一个非常有用的Java类,可以在日期和时间计算中编写优秀的代码。