您的位置:

Calendar类的使用

一、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类,可以在日期和时间计算中编写优秀的代码。