Java的Calendar 类

89 阅读2分钟

Java中的Calendar类是一个抽象类,它提供了用于操作和处理日期时间信息的API。使用Calendar类,我们可以获取、设置、比较和操纵日期时间信息。以下是一些常见的Calendar类的用法:

  1. 获取当前日期时间

我们可以通过调用Calendar.getInstance()来获取一个表示当前日期时间的Calendar实例。

Calendar calendar = Calendar.getInstance();

**

  1. 获取日期时间的各个字段信息

Calendar类提供了许多字段用于获取日期时间的各个部分信息,例如年、月、日、时、分、秒、毫秒和星期等。这些字段包括:

  • Calendar.YEAR:年份
  • Calendar.MONTH:月份(0-11)
  • Calendar.DAY_OF_MONTH:月份中的日期
  • Calendar.HOUR_OF_DAY:24小时制下的小时数
  • Calendar.MINUTE:分钟
  • Calendar.SECOND:秒
  • Calendar.MILLISECOND:毫秒
  • Calendar.DAY_OF_WEEK:星期几(星期天为1,星期六为7)

我们可以通过调用以下方法来获取每个字段的值:

int year = calendar.get(Calendar.YEAR);  // 获取年份
int month = calendar.get(Calendar.MONTH) + 1;  // 获取月份(注意需要加1)
int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);  // 获取月份中的日期
int hour = calendar.get(Calendar.HOUR_OF_DAY);  // 获取小时数(24小时制)
int minute = calendar.get(Calendar.MINUTE);  // 获取分钟数
int second = calendar.get(Calendar.SECOND);  // 获取秒数
int millisecond = calendar.get(Calendar.MILLISECOND);  // 获取毫秒数
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);  // 获取星期几

**

  1. 设置日期时间的各个字段信息

我们可以通过调用以下方法来设置日期时间的各个字段的值:

calendar.set(Calendar.YEAR, 2023);  // 设置年份为2023
calendar.set(Calendar.MONTH, Calendar.MAY);  // 设置月份为5(常量Calendar.MAY表示5月)
calendar.set(Calendar.DAY_OF_MONTH, 20);  // 设置日期为20号
calendar.set(Calendar.HOUR_OF_DAY, 13);  // 设置小时为13点
calendar.set(Calendar.MINUTE, 9);  // 设置分钟为9分
calendar.set(Calendar.SECOND, 10);  // 设置秒数为10秒
calendar.set(Calendar.MILLISECOND, 357);  // 设置毫秒数为357毫秒

**

  1. 进行日期时间比较

我们可以通过使用Calendar类提供的compareTo()、equals()和after()、before()等方法进行日期时间的比较。

Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
c2.add(Calendar.DAY_OF_MONTH, 1);
if (c1.compareTo(c2) == 0) {
    // 两个日期时间相等
}
if (c1.equals(c2)) {
    // 两个日期时间相等
}
if (c1.after(c2)) {
    // c1日期时间晚于c2
}
if (c1.before(c2)) {
    // c1日期时间早于c2
}

**

  1. 进行日期时间的加减运算

我们可以通过使用Calendar类提供的add()和roll()等方法进行日期时间的加减运算。

Calendar c = Calendar.getInstance();
c.add(Calendar.DAY_OF_MONTH, 1);  // 在当前日期时间上加1天
c.add(Calendar.MINUTE, -10);  // 在当前日期时间上减10分钟
c.roll(Calendar.MONTH, 1);  // 不改变年份,在当前月份上加1个月

**

以上是Calendar类的一些常见用法,如果您需要更加详细的了解,可以查看Java API文档。