Java Calendar类的简单学习

Calendar类概述

  1. java.util.Calendar类:是一个日历类

  2. Calendar类是一个抽象类,里边提供了很多操作日历字段的方法。

    如:YEAR、 MONTH、 DAY OF MONTH、HOUR

  3. Calendar类无法直接创建对象使用,里边有一个静态方法叫 getInstance(),getInstance()方法返回了 Calendar类的子类对象。static Calendar getInstance()使用默认时区和语言环境获得一个日历。

Calender获取对象的方式

使用静态方法:Calendar.getInstance()

复制
import java.util.Calendar;
public class Demo01Calendar {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
System.out.println(calendar);
}
}

Calender类的常用成员方法

复制
public int get(int field)
// 返回给定日历字段的值
public void set(int field, int value)
// 将给定的日历字段设置为给定值。
public abstract void add(int field, int amount)
// 根据日历的规则,为给定的日历字段添加或减去指定的时间量。
public Date getTime()
// 返回一个表示此 Calendar时间值(从历元到现在的亳秒偏移量)的Date对象。
复制
成员方法的参数:
int field:日历类的字段,可以使用 Calendar类的静态成员变量获取
public static final int YEAR = 1
public static final int MONTH = 2
public static final int DATE=5 一个月中的某一天
public static final int DAY_OF_ MONTH=5 一个月中的某一天
public static final int HOUR =10
public static final int MINUTE =12
public static final int SECOND =13

Calendar 类的简单使用

get() 方法

返回给定日历字段的值

复制
import java.util.Calendar;
public class DemoCalendarGet {
public static void main(String[] args) {
// 首先使用getInstance()方法获取calendar对象
Calendar calendar = Calendar.getInstance();
// 调用get方法获取给定日历字段的值
System.out.println(
"年:" + calendar.get(Calendar.YEAR) + "\n" +
"月:" + calendar.get(Calendar.MONTH) + "\n" +
"一个月中的某一天:" + calendar.get(Calendar.DATE) + "\n" +
"一个月中的某一天:" + calendar.get(Calendar.DAY_OF_MONTH) + "\n" +
"时:" + calendar.get(Calendar.HOUR) + "\n" +
"分:" + calendar.get(Calendar.MINUTE) + "\n" +
"秒:" + calendar.get(Calendar.SECOND)
);
}
}
复制
输出:
年:2020
月:0
一个月中的某一天:11
一个月中的某一天年:11
时:8
分:37
秒:31
复制
说明:
当时日期、时间:2020年1月11日8时37分31秒
西方的月份:0-11
东方的月份:1-12

set() 方法:

将给定的日历字段设置为给定值

复制
import java.util.Calendar;
public class DemoCalendarSet {
public static void main(String[] args) {
// 首先使用getInstance()方法获取calendar对象
Calendar calendar = Calendar.getInstance();
System.out.println("\n设置前");
System.out.println(
"年:" + calendar.get(Calendar.YEAR) + "\n" +
"月:" + calendar.get(Calendar.MONTH) + "\n" +
"一个月中的某一天:" + calendar.get(Calendar.DAY_OF_MONTH)
);
// 将年设置为 2008
calendar.set(Calendar.YEAR, 2008);
// 将月设置为 10
calendar.set(Calendar.MONTH, 10);
// 将日期设置为 3
calendar.set(Calendar.DAY_OF_MONTH, 3);
System.out.println("\n分别设置后");
System.out.println(
"年:" + calendar.get(Calendar.YEAR) + "\n" +
"月:" + calendar.get(Calendar.MONTH) + "\n" +
"一个月中的某一天:" + calendar.get(Calendar.DAY_OF_MONTH)
);
// 同时设置年月日
calendar.set(1998, Calendar.SEPTEMBER, 25);
System.out.println("\n同时设置后");
System.out.println(
"年:" + calendar.get(Calendar.YEAR) + "\n" +
"月:" + calendar.get(Calendar.MONTH) + "\n" +
"一个月中的某一天:" + calendar.get(Calendar.DAY_OF_MONTH)
);
}
}
复制
输出结果:
设置前
年:2020
月:0
一个月中的某一天:11
分别设置后
年:2008
月:10
一个月中的某一天:3
同时设置后
年:1998
月:8
一个月中的某一天:25

add() 方法

根据日历的规则,为给定的日历字段添加或减去指定的时间量。

复制
import java.util.Calendar;
public class DemoCalendarAdd {
public static void main(String[] args) {
// 首先使用getInstance()方法获取calendar对象
Calendar calendar = Calendar.getInstance();
System.out.println("\n变化前");
System.out.println(
"年:" + calendar.get(Calendar.YEAR) + "\n" +
"月:" + calendar.get(Calendar.MONTH) + "\n" +
"一个月中的某一天:" + calendar.get(Calendar.DAY_OF_MONTH)
);
// 把年减少两年
calendar.add(Calendar.YEAR, -2);
// 把月份增加三个月
calendar.add(Calendar.MONTH, 3);
// 把日期增加10天
calendar.add(Calendar.DAY_OF_MONTH, 10);
System.out.println("\n变化后");
System.out.println(
"年:" + calendar.get(Calendar.YEAR) + "\n" +
"月:" + calendar.get(Calendar.MONTH) + "\n" +
"一个月中的某一天:" + calendar.get(Calendar.DAY_OF_MONTH)
);
}
}
复制
输出结果:
变化前
年:2020
月:0
一个月中的某一天:11
变化后
年:2018
月:3
一个月中的某一天:21

getTime() 方法

返回一个表示此 Calendar时间值(从历元到现在的亳秒偏移量)的Date对象。

复制
import java.util.Calendar;
public class DemoCalendarGetTime {
public static void main(String[] args) {
// 首先使用getInstance()方法获取calendar对象
Calendar calendar = Calendar.getInstance();
// 返回一个表示calendar时间值(从历元到现在的亳秒偏移量)的Date对象。
System.out.println(
calendar.getTime()
);
}
}
复制
输出结果:
Sat Jan 11 21:16:52 CST 2020
posted @   LeeHua  阅读(3996)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示

目录导航